generate static method
Generates a repository interface for the given feature.
Parameters:
snakeName: Feature name in snake_casepascalName: Feature name in PascalCase
Returns a string containing the complete repository interface code.
Implementation
static String generate(String snakeName, String pascalName) {
return '''import 'package:core/core.dart';
import 'package:dartz/dartz.dart';
import '../entities/${snakeName}_entity.dart';
/// Repository interface for $pascalName
/// Defines the contract for $snakeName data operations
abstract class ${pascalName}Repository {
/// Get $snakeName by ID
Future<Either<ApiException, ${pascalName}Entity>> get$pascalName(String id);
/// Get all ${snakeName}s
Future<Either<ApiException, List<${pascalName}Entity>>> getAll();
/// Create new $snakeName
Future<Either<ApiException, ${pascalName}Entity>> create$pascalName(${pascalName}Entity $snakeName);
/// Update existing $snakeName
Future<Either<ApiException, ${pascalName}Entity>> update$pascalName(${pascalName}Entity $snakeName);
/// Delete $snakeName
Future<Either<ApiException, void>> delete$pascalName(String id);
}
''';
}