Skip to main content

Campos

CampoTipoDescrição
cooperativeIdUUIDIdentificador único
organizationIdUUIDReferência à organização
createdByUUID?Usuário que criou o registro, quando aplicável
createdAtDateTimeData de criação
updatedByUUID?Usuário que fez a última atualização, quando aplicável
updatedAtDateTimeData da última atualização
deletedByUUID?Usuário que removeu o registro, quando aplicável
deletedAtDateTime?Data de remoção

Relacionamentos

  • Relaciona-se com Organization (1:1)
  • Relaciona-se com múltiplos Company (1:N via Company.cooperativeId)

Relacionamento com Company

AspectoRegra
CardinalidadeUma Cooperative pode ter zero ou mais Company.
Chave de vínculoCompany.cooperativeId referencia Cooperative.cooperativeId.
ObrigatoriedadeA Company sempre precisa de uma cooperativa. A Cooperative pode existir antes de ter empresas.
Consulta principalListagens de empresas afiliadas filtram Company.cooperativeId = Cooperative.cooperativeId.
RemoçãoUma cooperativa com empresas ativas não deve ser removida sem bloquear, migrar ou encerrar essas empresas.

Regras de Negócio

  • Estende a Organization para cooperativas administradoras de empresas.
  • Uma cooperativa agrupa empresas afiliadas que operam o transporte.
  • Cooperativa não participa do fluxo de billing.
  • Usuários podem ter Membership na organização da cooperativa para administrar o seu contexto operacional.
  • Recursos operacionais e financeiros continuam pertencendo às empresas afiliadas, não à cooperativa.
  • Administração cross-company deve sempre ser resolvida pelo vínculo Company.cooperativeId.

Example

{
  "cooperativeId": "0197a800-24e6-76a2-90ed-ff0f6fba7b0c",
  "organizationId": "0197a7f7-7291-7a43-96db-2c8580b80c5d",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T13:05:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T13:05:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}