generateEntities function
Implementation
Set<String> generateEntities({
required Set<String> usedEntities,
required Map<String, dynamic> schemas,
required String outputPath,
}) {
final generator = EntityGenerator();
final generated = <String>{};
void generateRecursive(String entityName) {
if (generated.contains(entityName)) return;
final schemaKey = schemas.keys.firstWhere(
(k) => resolveEntityName(k) == entityName,
orElse: () => '',
);
if (schemaKey.isEmpty) return;
final schema = schemas[schemaKey]!;
// ⛔ FILTER DOMAIN ENTITY
if (!isDomainEntity(schemaKey, schema)) return;
generated.add(entityName);
final deps = resolveEntityDependencies(schemaKey, schemas, {});
for (final dep in deps) {
generateRecursive(dep);
}
final code = generator.generateEntity(entityName, schema);
File('$outputPath/${entityName.snakeCase}.dart').writeAsStringSync(code);
}
for (final entity in usedEntities) {
generateRecursive(entity);
}
print('✅ Entities generated at $outputPath');
return generated;
}