analyzeModel<T> static method
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,
);
}