TransportOperatorQuota controla o teto operacional de viagens permitidas para um permissionário em uma rota e período.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
transportOperatorQuotaId | UUID | Identificador único |
cooperativeId | UUID | Cooperativa da regra |
transportOperatorId | UUID | Permissionário controlado |
routeId | UUID | Rota controlada |
periodType | QuotaPeriodType | Tipo do período |
periodStart | DateTime | Início do período |
periodEnd | DateTime | Fim do período |
maxTrips | Int | Quantidade máxima de viagens permitidas |
reservedTrips | Int | Viagens em andamento ou reservadas |
consumedTrips | Int | Viagens concluídas que consumiram cota |
status | TransportOperatorQuotaStatus | Status da regra |
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 TransportOperator por
transportOperatorId. - Relaciona-se com Route por
routeId. - Relaciona-se com múltiplos TransportOperatorQuotaUsage.
- É consultada no ciclo de vida da Trip.
Regras de Negócio
- A cota é definida por
transportOperatorId + routeId + período. Tripcriada ou agendada não consome cota.Tripiniciada pode reservar cota emreservedTrips.Tripconcluída consome cota definitiva emconsumedTrips.Tripcancelada ou não executada libera a reserva e não consome cota definitiva.- A operação deve bloquear ou exigir revisão quando
reservedTrips + consumedTrips >= maxTrips. - Cada reserva, consumo ou liberação deve criar um TransportOperatorQuotaUsage idempotente por Trip.
Enums
QuotaPeriodType
| Valor | Descrição |
|---|---|
DAILY | Cota diária |
WEEKLY | Cota semanal |
MONTHLY | Cota mensal |
CUSTOM | Período definido manualmente |
TransportOperatorQuotaStatus
| Valor | Descrição |
|---|---|
ACTIVE | Regra ativa |
INACTIVE | Regra inativa |
EXHAUSTED | Cota atingida no período |