generateDomainRepositoryTemplate method
Generates domain repository interface template.
Creates the repository contract with the API method signature.
Parameters:
config: API generation configuration
Implementation
String generateDomainRepositoryTemplate(ApiGenerationConfig config) {
final bodyClass =
typeResolver.resolveBodyClass(config.apiClassName, config.bodyList);
final entityClass = typeResolver.resolveEntityClass(config);
return '''${config.returnData == 'body_bytes' ? "import 'dart:typed_data';" : ''}
import 'package:core/core.dart';
import '../../data/models/body/${config.apiName}_body.dart';
${config.isReturnDataModel ? '''import '../entities/${config.apiName}_entity.dart';''' : ''}
abstract class ${config.pageClassName}Repository {
${typeResolver.resolveFlutterClassOfMethod(config.method)}<Either<MorphemeFailure, $entityClass>> ${config.apiMethodName}($bodyClass body,{Map<String, String>? headers, ${typeResolver.isApplyCacheStrategy(config.method) ? 'CacheStrategy? cacheStrategy,' : ''}});
}''';
}