> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devmob.app.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Route

> Rotas fixas operadas por empresas, referenciando Points do catálogo global como origem e destino

## 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](/data-modelling/tenant/company)
* Relaciona-se com [Point](/data-modelling/operations/point) as origin (`originId`)
* Relaciona-se com [Point](/data-modelling/operations/point) as destination (`destinationId`)
* Relaciona-se com múltiplos [Trip](/data-modelling/operations/trip)
* Relaciona-se com múltiplos [RouteApproval](/data-modelling/operations/route-approval)

## 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 em `Route`.
* 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_APPROVAL` por meio de [RouteApproval](/data-modelling/operations/route-approval).
* Rotas `ACTIVE` podem ser usadas em trips e venda.
* Rotas `INACTIVE` nã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                        |

## Example

```json theme={null}
{
  "routeId": "0197a80c-4204-7b77-9005-48cc23677587",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "originId": "0197a80b-3f5c-7f5c-86e9-ff4f8a6ce1dc",
  "destinationId": "0197a80c-a9dd-75e6-b5fa-72876924256d",
  "distanceKm": 315.4,
  "estimatedDuration": 270,
  "status": "PENDING_APPROVAL",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T15:10:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T15:10:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}
```
