Campos
| Campo | Tipo | Descrição |
|---|---|---|
routeId | UUID | Identificador único |
companyId | UUID | Referência à empresa |
originId | UUID | Referência ao Point de origem |
destinationId | UUID | Referência ao Point de destino |
distanceKm | Float | Distância em quilômetros |
estimatedDuration | Int | Duração estimada em minutos |
status | RouteStatus | Status da rota |
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 Company
- Relaciona-se com Point as origin (
originId) - Relaciona-se com Point as destination (
destinationId) - 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. - O veículo e o motorista são atribuídos por viagem (
Trip), não por rota. - A duração estimada é armazenada em minutos (
Int). - A rota nasce com
status = PENDING_APPROVAL. - A rota só deve sair de
PENDING_APPROVALpor meio de RouteApproval. - Rotas
ACTIVEpodem ser usadas em trips e venda. - Rotas
INACTIVEnão devem ser usadas em novas trips.
Enums
RouteStatus
| Valor | Descrição |
|---|---|
PENDING_APPROVAL | Rota criada e pendente de aprovação |
ACTIVE | Rota ativa |
INACTIVE | Rota inativa |