Campos
Relacionamentos
- Relaciona-se com Cooperative por
cooperativeId. - Relaciona-se opcionalmente com TransportOperator por
transportOperatorId. - Relaciona-se com Point as origin (
originId). - Relaciona-se com Point as destination (
destinationId). - Relaciona-se com múltiplos TransportOperatorRoute.
- Relaciona-se com múltiplas TransportOperatorRoutePolicy.
- Relaciona-se com múltiplos Trip.
- Relaciona-se com múltiplos RouteApproval.
Regras de Negócio
- Representa um par fixo de origem e destino, ambos referenciando o catálogo global de Point.
- Nome e coordenadas de origem/destino vivem em
Point— não são duplicados emRoute. cooperativeIdidentifica a cooperativa responsável pela criação da rota.transportOperatorIdidentifica o permissionário de origem quando ele propõe a rota; caso contrário, permanece nulo.- Quando preenchido, o permissionário deve pertencer à cooperativa informada.
- A rota nasce com
status = PENDING_APPROVAL. - A rota só deve sair de
PENDING_APPROVALpor meio de RouteApproval. - MOB/BKO aprova ou rejeita a rota.
- O permissionário de origem não recebe autorização operacional automática. Ele opera uma rota aprovada somente quando existe TransportOperatorRoute ativo.
- O veículo e o motorista são atribuídos por viagem (
Trip), não por rota. driverIdnão fica na rota. A autorização do motorista é validada por DriverTransportOperator na Trip.- Rotas
ACTIVEpodem ser usadas em Trips e venda. - Rotas
INACTIVEnão devem ser usadas em novas Trips.