Value Object (Kotlin)
Overview
Aplicar o padrão de Value Object em Kotlin, garantindo imutabilidade, validação de invariantes, normalização de dados e a interface create/tryCreate com Result.
Guidelines
- Ler
references/vo-pattern-kt.mdantes de criar ou modificar VOs. - Preferir
@JvmInline value classpara VOs simples de tipo único (String, Int, Long). - Usar
data classpara VOs compostos (ex.: Address com street + city + zip). - Construtor
private, factory nocompanion objectcomcreateetryCreate. - Validações explícitas com mensagens de erro legíveis.
- Normalização (trim, lowercase) aplicada antes da construção.
Workflow
- Identificar o tipo base do VO (string, number, composto) e invariantes.
- Verificar VOs existentes para evitar duplicação.
- Implementar o VO seguindo o esqueleto padrão (ver referência).
- Adicionar testes cobrindo sucesso, falha e normalização.
- Revisar API pública para manter consistência (
create,tryCreate, erros).
References
Consultar references/vo-pattern-kt.md para padrões, exemplos e caminhos relevantes.
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.