Use Case (Kotlin)
Overview
Aplicar o padrão de casos de uso em Kotlin com foco em orquestração de dependências, validações de fluxo, retorno consistente com Result e testes que cubram caminhos de sucesso e falha.
Guidelines
- Ler
references/use-case-pattern-kt.mdantes de criar ou alterar use cases. - Implementar interface
UseCase<IN, OUT>comsuspend fun execute(data: IN): Result<OUT>. - Manter o use case como orquestrador: valida fluxo, chama repositories/queries e delega invariantes para entidades/VOs.
- Injetar dependências via construtor (interfaces, não implementações concretas).
- Tratar falhas cedo (early return) com
Result.failure(...)ou.getOrElse { return ... }. - Evitar lógica de persistência/infra dentro do use case.
Workflow
- Definir
IN/OUTe o contrato do use case. - Identificar dependências necessárias (repository, query, provider).
- Implementar
executecom validações de pré-condição e retornos de falha imediatos. - Orquestrar criação/atualização de entidades via
tryCreate/copy. - Persistir/consultar dados somente por interfaces de provider.
- Cobrir testes com cenário feliz, validações de entrada e falhas de dependências.
References
Consultar references/use-case-pattern-kt.md para paths, checklist, exemplos e armadilhas.
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.