> ## 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.

# TransportOperatorRoutePolicy

> Configuração operacional e financeira de um permissionário em uma rota

`TransportOperatorRoutePolicy` centraliza a vigência, o subsídio por quilômetro e o limite de viagens de um permissionário em uma rota.

## Persistência

| Propriedade | Valor                               |
| ----------- | ----------------------------------- |
| Tabela      | `transport_operator_route_policies` |
| Exclusão    | Lógica, por `deletedAt`             |

## Campos

| Campo                            | Tipo             | Descrição                                       |
| -------------------------------- | ---------------- | ----------------------------------------------- |
| `transportOperatorRoutePolicyId` | `UUID`           | Identificador único                             |
| `transportOperatorId`            | `UUID`           | Permissionário ao qual a política se aplica     |
| `routeId`                        | `UUID`           | Rota à qual a política se aplica                |
| `startAt`                        | `DateTime`       | Início da vigência                              |
| `endAt`                          | `DateTime`       | Fim da vigência                                 |
| `subsidyAmountPerKm`             | `Int`            | Valor do subsídio por quilômetro em centavos    |
| `distanceSource`                 | `DistanceSource` | Fonte da distância usada no cálculo do subsídio |
| `tripLimit`                      | `Int`            | Quantidade máxima de viagens na vigência        |
| `createdAt`                      | `DateTime`       | Data de criação                                 |
| `updatedAt`                      | `DateTime`       | Data da última atualização                      |
| `deletedAt`                      | `DateTime?`      | Data de remoção lógica                          |

## Relacionamentos

* Relaciona-se com [TransportOperator](/data-modelling/tenant/transport-operator) por `transportOperatorId`.
* Relaciona-se com [Route](/data-modelling/operations/route) por `routeId`.
* Pode ser referenciada por [TransportOperatorQuotaUsage](/data-modelling/operations/transport-operator-quota-usage) para auditar o consumo do limite.
* Origina [TransportOperatorSubsidySettlement](/data-modelling/billing/transport-operator-subsidy-settlement).

## Regras de Negócio

* A política é única por `transportOperatorId`, `routeId` e vigência.
* Vigências ativas do mesmo permissionário e rota não podem se sobrepor.
* `endAt` deve ser posterior a `startAt`.
* `subsidyAmountPerKm` é armazenado em centavos; `200` representa R\$ 2,00 por quilômetro.
* `tripLimit` deve ser maior que zero.
* Apenas Trips dentro da vigência participam do limite e do cálculo de subsídio.
* Uma Trip concluída usa a mesma política para consumir o limite operacional e gerar a apuração financeira.

## Enums

### DistanceSource

| Valor              | Descrição                                       |
| ------------------ | ----------------------------------------------- |
| `PLANNED_ROUTE`    | Usa `Route.distanceKm` aprovado                 |
| `GPS_AUDITED`      | Usa distância auditada por GPS                  |
| `ODOMETER_AUDITED` | Usa distância auditada por hodômetro            |
| `COMBINED_AUDIT`   | Usa regra combinada entre rota, GPS e hodômetro |

## Example

```json theme={null}
{
  "transportOperatorRoutePolicyId": "01980d36-4381-7c81-8786-230f12cb35c0",
  "transportOperatorId": "01980d30-6a3c-7a42-9182-17ad6324d3aa",
  "routeId": "0197a80c-4204-7b77-9005-48cc23677587",
  "startAt": "2026-07-01T00:00:00.000Z",
  "endAt": "2026-07-31T23:59:59.999Z",
  "subsidyAmountPerKm": 200,
  "distanceSource": "COMBINED_AUDIT",
  "tripLimit": 80,
  "createdAt": "2026-07-01T09:30:00.000Z",
  "updatedAt": "2026-07-01T09:30:00.000Z",
  "deletedAt": null
}
```
