analyzeModel<T> static method

ModelStructure analyzeModel<T>(
  1. T model
)

Implementation

static ModelStructure analyzeModel<T>(T model) {
  final modelName = T.toString();
  final modelMap = _convertToMap(model);
  final fields = <ModelField>[];

  modelMap.forEach((key, value) {
    String type = value?.runtimeType.toString() ?? 'dynamic';
    bool isNullable = value == null;
    List<ModelField> subFields = [];

    // Check for nested objects
    if (value != null && value is Map) {
      final nestedMap = Map<String, dynamic>.from(value);
      nestedMap.forEach((subKey, subValue) {
        String subType = subValue?.runtimeType.toString() ?? 'dynamic';
        subFields.add(ModelField(
          name: subKey,
          type: subType,
          isNullable: subValue == null,
        ));
      });
    }

    fields.add(ModelField(
      name: key,
      type: type,
      isNullable: isNullable,
      subFields: subFields,
    ));
  });

  return ModelStructure(
    modelName: modelName,
    fields: fields,
  );
}