Use Case
Overview
Aplicar o padrão de casos de uso do projeto 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.mdantes de criar ou alterar use cases. - Implementar o contrato
UseCase<IN, OUT>comexecute(data: IN): Promise<Result<OUT>>. - Manter o use case como orquestrador: valida fluxo, chama providers/repos/queries e delega invariantes para entidades/VOs.
- Injetar dependências via construtor com interfaces de provider/repository/query.
- Tratar falhas cedo (
early return) comResult.fail(...)ouresult.withFail. - Evitar lógica de persistência/infra dentro do use case.
- Para atualização de estado, reaplicar validações de domínio com
tryCreateoucloneWith.
Workflow
- Definir
IN/OUTe o contrato do use case. - Identificar dependências necessárias (repo, query, checker, provider).
- Implementar
executecom validações de pré-condição e retornos de falha imediatos. - Orquestrar criação/atualização de entidades via
tryCreate/cloneWithquando necessário. - 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.md para paths, checklist, exemplos e armadilhas frequentes do projeto.
Consultar ../skills-standards.md para convenção global de nomenclatura.
Global Standards
- Consultar
../skills-standards.mdpara padroes globais de nomenclatura e convencoes gerais entre skills.