Overview
O domínio de Tenant é responsável pela estrutura organizacional do sistema. Ele define como organizações são criadas, como se diferenciam entre cooperativas e empresas de transporte, e como usuários são vinculados a elas com roles, permissões e vínculos operacionais de funcionário. O isolamento multi-tenant do DEVMOB é baseado em Organization — todo dado de negócio pertence a uma organização, e o contexto ativo vem do Profile autenticado.Conceitos
Organization Onboarding
Fluxo completo de criação de organização: habilitações por tipo, role admin de ambiente e Invite do owner.
Cooperative and Company
Relação 1:N entre cooperativas administradoras e empresas de transporte afiliadas.
Invitation Flow
Ciclo de vida do Invite: membro, motorista, ativação de conta e revogação.
Entidades
| Entidade | Descrição |
|---|---|
| Organization | Tenant base com dados cadastrais comuns a cooperativas e empresas. |
| OrganizationAddress | Endereço da organização (relação 1:1). |
| Cooperative | Extensão de Organization para cooperativas administradoras de empresas afiliadas. |
| Company | Extensão de Organization para empresas de transporte (dona de frota, rotas, viagens e billing). |
| Employee | Funcionário vinculado a uma Company a partir de uma Membership na Organization da empresa. |
| Membership | Vínculo entre usuário, organização e role. Roles ENVIRONMENT e ORGANIZATION usam escopo de organização; roles INTERNAL não. |
| Invite | Token polimórfico para membro (MEMBER), motorista (DRIVER) ou ativação de conta (ACCOUNT_ACTIVATION). Convites internos e ativações não possuem organização. |
OrganizationType
O tipo da organização define suas capacidades dentro do ecossistema:| Tipo | Descrição |
|---|---|
COOPERATIVE | Cooperativa administradora de empresas afiliadas. |
COMPANY | Empresa de transporte — possui frota, define rotas e opera viagens. |
OrganizationStatus
| Status | Descrição |
|---|---|
ACTIVE | Organização pode operar normalmente. |
INACTIVE | Organização inativa para novas operações. |
BLOCKED | Organização bloqueada por regra administrativa ou de conformidade. |
User.status = BLOCKED bloqueia o acesso global do usuário. Organization.status = BLOCKED bloqueia operações no contexto daquela organização.
Cooperative & Company Extensions
A Organization é uma entidade base estendida por Cooperative ou Company conforme o tipo:| Tipo | Cooperative Extension | Company Extension |
|---|---|---|
COOPERATIVE | Sim | — |
COMPANY | — | Sim |
A Company adiciona o campo opcional
anttCode (código de registro na ANTT — Agência Nacional de Transportes Terrestres) e é a unidade operacional e financeira do sistema. A Cooperative administra empresas, mas não participa de billing.