generateUseCase method

Future<void> generateUseCase(
  1. String name
)

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>"');
}