TransportOperatorQuotaUsage registra cada movimento do limite de viagens gerado por uma Trip. Ele evita dupla contagem e permite auditar por que uma vaga foi reservada, consumida ou liberada.
Campos
Relacionamentos
- Relaciona-se com TransportOperatorRoutePolicy por
transportOperatorRoutePolicyId. - Relaciona-se com Cooperative por
cooperativeId. - Relaciona-se com TransportOperator por
transportOperatorId. - Relaciona-se com Route por
routeId. - Relaciona-se com Trip por
tripId.
Regras de Negócio
RESERVEé criado quando uma Trip entra emIN_PROGRESS.CONSUMEé criado quando uma Trip entra emCOMPLETED.RELEASEé criado quando uma Trip reservada é cancelada antes de consumir cota definitiva.idempotencyKeydeve ser única paratransportOperatorRoutePolicyId + tripId + type.- A mesma Trip não pode consumir a mesma cota mais de uma vez.
- Movimentos são append-only. Correções devem criar novo movimento compensatório.