Campos
Regras de Negócio
- Uma Route pertence a exatamente uma Cooperative, responsável por sua criação e escopo.
transportOperatorIdregistra a origem quando a rota é proposta por um permissionário da cooperativa.- O campo de origem não autoriza operação. O uso da rota por qualquer permissionário fica em TransportOperatorRoute.
- A rota define apenas os pontos extremos (origem e destino) via
originIdedestinationId. Os pontos intermediários são representados pelos TripStops das viagens; TripItineraries criam os pares compráveis entre essas paradas. originIdedestinationIdapontam para entradas do catálogo global de Point — nome e coordenadas vêm da entidade Point, não são duplicados em Route. A criação valida que ambos os Points existem.- A distância (
distanceKm) e a duração estimada (estimatedDuration, em minutos) são informadas pela cooperativa e servem como referência para precificação, subsídio e planejamento — não são calculadas pelo route preview. - A rota nasce com
status = PENDING_APPROVAL. - A rota só deve virar
ACTIVEpor aprovação registrada em RouteApproval. - Rotas
ACTIVEpodem ser usadas em trips e vendas. RotasINACTIVEficam fora de novas operações. - Uma rota com viagens ativas (
SCHEDULEDouIN_PROGRESS) não pode ser excluída: a exclusão é bloqueada comhas_active_trips. - O acesso é escopado por organização; uma rota de outra organização retorna 404.
Aprovação
A permission de aprovar fica no domínio de Authorization. O domínio de Operations registra o fluxo operacional e o efeito sobre a Route.