Pular para o conteúdo principal

Camada de Domínio

A camada de domínio do Core do WMS contém as regras de negócio e abstrações principais do sistema.
Ela é responsável por representar de forma fiel o domínio logístico (operações de armazém) e manter a lógica independente de detalhes técnicos.

Estrutura de Pastas

No módulo WMS.AI.Domain, a camada está organizada da seguinte forma:

  • Attributes → Contém atributos customizados usados para enriquecer validações e metadados de objetos do domínio.
  • Enums → Define valores fixos e controlados do domínio (ex: status de pedido, tipo de operação, prioridade de onda).
  • Models → Representações de dados do domínio que não são necessariamente entidades persistidas.
    • Validations → classes responsáveis por validar regras de negócio dentro dos modelos.
  • Persistence → Estruturas relacionadas à persistência, mas ainda pertencentes ao domínio.
    • Entities → principais objetos do negócio, com identidade (ex: Pedido, Endereço).
    • Repositories → interfaces que definem contratos de acesso a dados, mantendo a camada desacoplada da infraestrutura.

Diretrizes

  • Isolamento: o domínio não depende de bibliotecas de infraestrutura (ex: Entity Framework, mensageria).
  • Consistência: regras de negócio são centralizadas aqui, evitando duplicação em diferentes serviços.
  • Reaproveitamento: como parte do Core do WMS, essa camada é utilizada por qualquer aplicação (Blazor Client, API, Serviços).