Pular para conteúdo
  • Marcelo Areco reviewers: [] created: 2026-07-02 updated: 2026-07-02 tags:
  • ddd
  • entities
  • domain-model

Entities

Objetivo

Definir o padrão oficial para modelagem de Entidades na CoreFlow Platform.

Entidades representam objetos de domínio que possuem identidade própria e ciclo de vida independente.


Conceito

Uma Entidade é identificada pelo seu identificador, e não pelos seus atributos.

Mesmo que seus dados mudem ao longo do tempo, sua identidade permanece a mesma.


Características

Toda entidade deverá possuir:

  • Identificador único
  • Ciclo de vida
  • Estado mutável
  • Regras de negócio
  • Auditoria
  • Controle de empresa (quando aplicável)

Identificação

Toda entidade utilizará UUID como chave primária.

Exemplo:

User
id: UUID

É proibido utilizar atributos de negócio como identificador.


Entidades do Core

User

Responsabilidades:

  • Identidade do usuário
  • Dados cadastrais
  • Situação
  • Preferências
  • Empresas vinculadas

Company

Responsabilidades:

  • Representar empresa (Tenant)
  • Configurações
  • Licenciamento
  • Filiais

Role

Responsabilidades:

  • Representar papel
  • Agrupar permissões

Permission

Responsabilidades:

  • Representar uma autorização do sistema

AuditEvent

Responsabilidades:

  • Registrar eventos corporativos

Notification

Responsabilidades:

  • Representar uma notificação

File

Responsabilidades:

  • Representar um arquivo armazenado

Entidades do CRM

Lead

Representa um potencial cliente.


Contact

Pessoa relacionada a uma empresa.


Account

Empresa ou cliente.


Opportunity

Negociação comercial.


Activity

Ligação, reunião, tarefa ou interação.


Proposal

Proposta comercial.


Entidades do ERP

  • Product
  • Supplier
  • PurchaseOrder
  • SalesOrder
  • InventoryMovement
  • Warehouse
  • Invoice

Entidades Financeiras

  • Payable
  • Receivable
  • Payment
  • Receipt
  • BankAccount
  • CashFlow

Entidades de RH

  • Employee
  • EmploymentContract
  • Payroll
  • Attendance
  • Vacation

Ciclo de Vida

stateDiagram-v2

[*] --> Created

Created --> Active

Active --> Updated

Updated --> Active

Active --> Inactive

Inactive --> Active

Active --> Deleted

Regras

Toda entidade deverá:

  • possuir identidade própria;
  • proteger suas invariantes;
  • pertencer a um Aggregate;
  • possuir auditoria;
  • respeitar o contexto onde está inserida.

Persistência

Entidades são persistidas exclusivamente por seus respectivos Repositories.

Nunca diretamente por serviços externos.


Igualdade

A igualdade entre entidades será determinada exclusivamente pelo identificador.

Exemplo:

User A == User B

quando

A.id == B.id

Segurança

Quando aplicável, toda entidade deverá conter:

  • company_id
  • created_at
  • updated_at
  • created_by
  • updated_by

Utilizar Soft Delete sempre que apropriado.


Anti-patterns

É proibido:

  • Entidades anêmicas
  • Entidades compartilhadas entre contextos
  • Regras de negócio em Controllers
  • Regras de negócio em Serializers
  • Chaves naturais como identidade

Objetivo Final

Estabelecer um modelo consistente de Entidades para toda a CoreFlow Platform, garantindo identidade, encapsulamento, rastreabilidade e alinhamento com os princípios de Domain-Driven Design.