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
documentdeve ser único. nameé o nome usado nas interfaces e listas operacionais.legalNamepreserva a razão social usada em contratos, billing, relatórios e auditoria.tradeNamepreserva o nome fantasia quando ele precisa ser distinto do nome de exibição.- O campo
typerepresenta o tipo da organização, podendo serCOOPERATIVEouCOMPANY. COOPERATIVErepresenta o contexto operacional de transporte.COMPANYrepresenta 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 = COOPERATIVEexige uma e somente uma Cooperative e não pode ter Company.type = COMPANYexige 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. statuscentraliza bloqueio e inativação administrativa para Company e Cooperative.- Organizações
BLOCKEDnão devem permitir novas operações no escopo afetado. - Criação, atualização e remoção de Organization solicitam auditoria via
audit_log.requestedcomdomain = TENANTeresource = ORGANIZATION.