generateRepository method

Future<void> generateRepository(
  1. String name
)

Implementation

Future<void> generateRepository(String name) async {
  final snakeName = templateGenerator.toSnakeCase(name);

  // For standalone repository generation, we'll put it in shared folders
  await ensureDirectoryExists('lib/shared/repositories');
  await ensureDirectoryExists('lib/shared/repositories/implementations');

  final files = {
    'lib/shared/repositories/${snakeName}_repository.dart':
        templateGenerator.generateRepositoryInterface(name),
    'lib/shared/repositories/implementations/${snakeName}_repository_impl.dart':
        templateGenerator.generateRepositoryImplementation(name),
  };

  for (final entry in files.entries) {
    await writeFile(entry.key, entry.value);
  }

  print('✅ Generated repository "$name" with files:');
  for (final filePath in files.keys) {
    print('  - $filePath');
  }
  print('💡 Note: Repository generated in shared folder. For feature-specific repositories, use "flx gen feature <name>"');
}