generateEntity method

String generateEntity(
  1. String name
)

Generates a domain entity class following Clean Architecture principles.

name - The name of the entity to generate.

Creates an entity class with proper structure, optional Freezed/Equatable integration, and appropriate imports based on configuration settings.

Implementation

String generateEntity(String name) {
  final className = toPascalCase(name);

  if (config.useFreezed) {
    return '''
import 'package:freezed_annotation/freezed_annotation.dart';

part '${toSnakeCase(name)}_entity.freezed.dart';

@freezed
class ${className}Entity with _\$${className}Entity {
const factory ${className}Entity({
  required String id,
  // Add your entity properties here
}) = _${className}Entity;
}
''';
  }

  if (config.useEquatable) {
    return '''
import 'package:equatable/equatable.dart';

class ${className}Entity extends Equatable {
const ${className}Entity({
  required this.id,
  // Add your entity properties here
});

final String id;

@override
List<Object?> get props => [id];
}
''';
  }

  return '''
class ${className}Entity {
const ${className}Entity({
  required this.id,
  // Add your entity properties here
});

final String id;
}
''';
}