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

# RouteApproval

> Histórico de aprovação ou reprovação de uma rota

`RouteApproval` registra a análise que permite uma rota sair de `PENDING_APPROVAL` e se tornar operacional. A rota nasce pendente de aprovação e só muda para ativa após aprovação.

## Campos

| Campo             | Tipo                  | Descrição                                              |
| ----------------- | --------------------- | ------------------------------------------------------ |
| `routeApprovalId` | `UUID`                | Identificador único                                    |
| `routeId`         | `UUID`                | Rota analisada                                         |
| `requestedBy`     | `UUID`                | Usuário que solicitou ou criou a rota para análise     |
| `reviewedBy`      | `UUID?`               | Usuário que aprovou ou rejeitou a rota                 |
| `status`          | `RouteApprovalStatus` | Status da análise                                      |
| `rejectionReason` | `String?`             | Motivo da rejeição, quando aplicável                   |
| `requestedAt`     | `DateTime`            | Data de solicitação de análise                         |
| `reviewedAt`      | `DateTime?`           | Data da aprovação ou rejeiçã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 [Route](/data-modelling/operations/route).
* Relaciona-se com [User](/data-modelling/identity/user) como solicitante e revisor.

## Regras de Negócio

* Uma rota nova nasce como `Route.status = PENDING_APPROVAL`.
* Aprovar a análise muda a rota para `ACTIVE`.
* Rejeitar a análise mantém a rota fora de uso operacional.
* `rejectionReason` é obrigatório quando `status = REJECTED`.
* A permission de aprovação é tratada no domínio de Authorization.
* O histórico de análises deve ser preservado.

## Enums

### RouteApprovalStatus

| Valor      | Descrição        |
| ---------- | ---------------- |
| `PENDING`  | Análise pendente |
| `APPROVED` | Rota aprovada    |
| `REJECTED` | Rota rejeitada   |

## Example

```json theme={null}
{
  "routeApprovalId": "01980b71-7c84-7a8f-9018-16f4f2eaa06d",
  "routeId": "0197a80c-4204-7b77-9005-48cc23677587",
  "requestedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "reviewedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "status": "APPROVED",
  "rejectionReason": null,
  "requestedAt": "2026-07-03T15:10:00.000Z",
  "reviewedAt": "2026-07-03T15:30:00.000Z",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T15:10:00.000Z",
  "updatedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "updatedAt": "2026-07-03T15:30:00.000Z"
}
```
