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

# TransportOperatorSubsidySettlement

> Fechamento auditável de subsídio por km executado

`TransportOperatorSubsidySettlement` registra o cálculo de subsídio devido a um permissionário após trips executadas e auditadas.

## Campos

| Campo                                  | Tipo                                       | Descrição                                              |
| -------------------------------------- | ------------------------------------------ | ------------------------------------------------------ |
| `transportOperatorSubsidySettlementId` | `UUID`                                     | Identificador único                                    |
| `cooperativeId`                        | `UUID`                                     | Cooperativa responsável pela operação                  |
| `transportOperatorId`                  | `UUID`                                     | Permissionário contemplado                             |
| `routeId`                              | `UUID?`                                    | Rota consolidada, quando o fechamento for por rota     |
| `tripId`                               | `UUID?`                                    | Trip específica, quando o fechamento for unitário      |
| `subsidyRuleId`                        | `UUID`                                     | Regra de subsídio usada no cálculo                     |
| `periodStart`                          | `DateTime`                                 | Início do período auditado                             |
| `periodEnd`                            | `DateTime`                                 | Fim do período auditado                                |
| `tripCount`                            | `Int`                                      | Quantidade de trips consideradas                       |
| `auditedDistanceKm`                    | `Float`                                    | Quilometragem auditada usada no cálculo                |
| `amountPerKm`                          | `Int`                                      | Valor por quilômetro em centavos no momento do cálculo |
| `grossAmount`                          | `Int`                                      | Valor bruto calculado em centavos                      |
| `status`                               | `TransportOperatorSubsidySettlementStatus` | Status do fechamento                                   |
| `approvedBy`                           | `UUID?`                                    | Usuário que aprovou o fechamento                       |
| `approvedAt`                           | `DateTime?`                                | Data de aprovação                                      |
| `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                             |

## Relacionamentos

* Relaciona-se com [Cooperative](/data-modelling/tenant/cooperative) por `cooperativeId`.
* Relaciona-se com [TransportOperator](/data-modelling/tenant/transport-operator) por `transportOperatorId`.
* Relaciona-se com [Route](/data-modelling/operations/route) por `routeId`, quando aplicável.
* Relaciona-se com [Trip](/data-modelling/operations/trip) por `tripId`, quando o fechamento for unitário.
* Relaciona-se com [TransportOperatorSubsidyRule](/data-modelling/operations/transport-operator-subsidy-rule) por `subsidyRuleId`.

## Regras de Negócio

* O fechamento só considera trips `COMPLETED` e auditadas.
* O cálculo usa `auditedDistanceKm * amountPerKm`.
* Quando a regra usar `PLANNED_ROUTE`, `auditedDistanceKm` normalmente replica `Route.distanceKm`.
* Quando a regra usar GPS, hodômetro ou auditoria combinada, divergências podem deixar o fechamento em `UNDER_REVIEW`.
* O fechamento pode ser unitário por Trip ou consolidado por período.
* Fechamentos aprovados não devem ser recalculados silenciosamente; ajustes devem gerar novo fechamento ou revisão auditável.

## Enums

### TransportOperatorSubsidySettlementStatus

| Valor          | Descrição                              |
| -------------- | -------------------------------------- |
| `PENDING`      | Fechamento criado e aguardando análise |
| `UNDER_REVIEW` | Fechamento em revisão por divergência  |
| `APPROVED`     | Fechamento aprovado                    |
| `REJECTED`     | Fechamento rejeitado                   |
| `PAID`         | Fechamento pago ou liquidado           |

## Example

```json theme={null}
{
  "transportOperatorSubsidySettlementId": "01980d37-a8dc-755a-8a7c-27372a096a7b",
  "cooperativeId": "0197a800-24e6-76a2-90ed-ff0f6fba7b0c",
  "transportOperatorId": "01980d30-6a3c-7a42-9182-17ad6324d3aa",
  "routeId": "0197a80c-4204-7b77-9005-48cc23677587",
  "tripId": "0197a80f-2d8f-7710-b243-b67fb477a1c0",
  "subsidyRuleId": "01980d36-4381-7c81-8786-230f12cb35c0",
  "periodStart": "2026-07-04T08:00:00.000Z",
  "periodEnd": "2026-07-04T12:30:00.000Z",
  "tripCount": 1,
  "auditedDistanceKm": 18.0,
  "amountPerKm": 200,
  "grossAmount": 3600,
  "status": "APPROVED",
  "approvedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "approvedAt": "2026-07-04T14:00:00.000Z",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-04T13:30:00.000Z",
  "updatedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "updatedAt": "2026-07-04T14:00:00.000Z"
}
```
