Skip to main content

Campos

Relacionamentos

  • Has one Cooperative, quando type = COOPERATIVE
  • Has one Company, quando type = COMPANY
  • Has one (optional) OrganizationAddress
  • Relaciona-se com múltiplos Role
  • Relaciona-se com múltiplos Membership
  • Relaciona-se com múltiplos Invite
  • Relaciona-se com múltiplos AuditLog
  • Relaciona-se com múltiplos Payment quando representa uma cooperativa
  • Relaciona-se com múltiplos Receivable quando representa uma cooperativa
  • Relaciona-se com múltiplos Transfer quando representa uma cooperativa
  • Relaciona-se com múltiplos CreditGrant quando representa uma Company

Regras de Negócio

  • A Organization é a entidade base de tenant e RBAC do sistema.
  • O campo document deve ser único.
  • name é o nome usado nas interfaces e listas operacionais.
  • legalName preserva a razão social usada em contratos, billing, relatórios e auditoria.
  • tradeName preserva o nome fantasia quando ele precisa ser distinto do nome de exibição.
  • O campo type representa o tipo da organização, podendo ser COOPERATIVE ou COMPANY.
  • COOPERATIVE representa o contexto operacional de transporte.
  • COMPANY representa a empresa cliente/corporativa que compra créditos e gerencia funcionários.
  • Cada Organization deve ter exatamente uma extensão compatível com seu type.
  • type = COOPERATIVE exige uma e somente uma Cooperative e não pode ter Company.
  • type = COMPANY exige uma e somente uma Company e não pode ter Cooperative.
  • Permissionários não são Organization; eles são modelados em TransportOperator dentro de uma cooperativa.
  • status centraliza bloqueio e inativação administrativa para Company e Cooperative.
  • Organizações BLOCKED não devem permitir novas operações no escopo afetado.
  • Criação, atualização e remoção de Organization solicitam auditoria via audit_log.requested com domain = TENANT e resource = ORGANIZATION.

Enums

OrganizationType

OrganizationStatus

Example