Entity (Kotlin)
Overview
Aplicar o padrão de Entidades em Kotlin com foco em identidade (id), invariantes, imutabilidade via data class/copy, validação no tryCreate (companion object) e operações seguras com Result.
Guidelines
- Ler
references/entity-pattern-kt.mdantes de criar/alterar entidades. - Entidade como
data classcom construtorprivatee factory nocompanion object. - Expor API consistente:
create(throws) etryCreate(Result). - Validar invariantes com VOs (
Id,Name,Email, etc.) e combinar erros. - Usar
copy()para atualização imutável (equivalente acloneWithdo TS). - Implementar
equals/hashCodeporid(não por todos os campos). - Preferir métodos de domínio explícitos (ex.:
deactivate(),changeName()) para comportamento relevante.
Workflow
- Identificar invariantes e tipo de identidade da entidade.
- Mapear dependências de VOs e entidades aninhadas para validação.
- Implementar
data class, companion object comcreate/tryCreateno padrão do projeto. - Sobrescrever
equals/hashCodeporidquando necessário. - Adicionar métodos de domínio quando houver transição de estado/comportamento.
- Criar ou atualizar testes cobrindo criação válida, inválida, copy e igualdade por
id. - Revisar consistência de mapeamento com repositórios/DTOs para novos campos.
References
Consultar references/entity-pattern-kt.md para paths, checklist, exemplos e armadilhas comuns.
Consultar ../skills-standards.md para convenção global de nomenclatura (seção Kotlin).
Global Standards
- Consultar
../skills-standards.mdpara padrões globais de nomenclatura e convenções gerais entre skills.