generateUseCase method
Generates a standalone use case class following Clean Architecture principles.
name
- The name of the use case to generate (e.g., 'get_user', 'authenticate').
Creates a domain use case class in lib/shared/usecases/
with:
- Proper use case structure with call() method
- Type-safe parameters and return types
- Error handling patterns
- Repository dependency injection
- Clean Architecture compliance
Example:
await fileGenerator.generateUseCase('get_user');
// Creates: lib/shared/usecases/get_user_usecase.dart
Implementation
Future<void> generateUseCase(String name) async {
final snakeName = templateGenerator.toSnakeCase(name);
// For standalone usecase generation, we'll put it in a shared usecases folder
await ensureDirectoryExists('lib/shared/usecases');
final content = templateGenerator.generateUseCase(name);
final filePath = 'lib/shared/usecases/${snakeName}_usecase.dart';
await writeFile(filePath, content);
print('✅ Generated usecase "$name":');
print(' - $filePath');
print('💡 Note: UseCase generated in shared folder. For feature-specific usecases, use "flx gen feature <name>"');
}