VehicleTransportOperator indica que um veículo da cooperativa pode ser usado por um permissionário.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
vehicleTransportOperatorId | UUID | Identificador único |
cooperativeId | UUID | Cooperativa do vínculo |
vehicleId | UUID | Veículo autorizado |
transportOperatorId | UUID | Permissionário autorizado |
status | VehicleTransportOperatorStatus | Status operacional do vínculo |
approvedBy | UUID? | Usuário que aprovou o vínculo |
approvedAt | DateTime? | Data de aprovação |
startsAt | DateTime? | Início opcional da vigência |
endsAt | DateTime? | Fim opcional da vigência |
createdBy | UUID? | Usuário que criou o registro, quando aplicável |
createdAt | DateTime | Data de criação |
updatedBy | UUID? | Usuário que fez a última atualização, quando aplicável |
updatedAt | DateTime | Data da última atualização |
deletedBy | UUID? | Usuário que removeu o registro, quando aplicável |
deletedAt | DateTime? | Data de remoção |
Relacionamentos
- Relaciona-se com Cooperative por
cooperativeId. - Relaciona-se com Vehicle por
vehicleId. - Relaciona-se com TransportOperator por
transportOperatorId. - É validado por Trip antes de iniciar a viagem.
Regras de Negócio
- Um veículo pode ser autorizado para múltiplos permissionários, conforme a operação permitir.
- O par
vehicleId + transportOperatorIddeve ser único enquanto ativo. cooperativeIddeve ser o mesmo do veículo e do TransportOperator.- A Trip só pode iniciar se o veículo estiver
ACTIVEe autorizado para o TransportOperator da Trip. - Bloqueios administrativos do veículo devem impedir novas Trips, mesmo quando o vínculo com o TransportOperator estiver ativo.
Enums
VehicleTransportOperatorStatus
| Valor | Descrição |
|---|---|
PENDING_APPROVAL | Vínculo aguardando aprovação |
ACTIVE | Veículo autorizado para o permissionário |
INACTIVE | Veículo inativo para o permissionário |
SUSPENDED | Vínculo temporariamente suspenso |