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

# PromotionalRouteRule

> Regra fixa de promoção por rota

O `PromotionalRouteRule` representa a regra de validação para uma promoção do tipo `ROUTE`. Ela guarda a FK da [Route](/data-modelling/operations/route) que precisa ser validada antes de aplicar o desconto.

## Campos

| Campo                    | Tipo                          | Descrição                                              |
| ------------------------ | ----------------------------- | ------------------------------------------------------ |
| `promotionalRouteRuleId` | `UUID`                        | Identificador único                                    |
| `promotionalId`          | `UUID`                        | Promoção dona da regra                                 |
| `organizationId`         | `UUID`                        | Organização da Company responsável pela promoção       |
| `companyId`              | `UUID`                        | Company dona da promoção                               |
| `routeId`                | `UUID`                        | Rota exigida para aplicação da promoção                |
| `applyTo`                | `PromotionalRouteApplyTarget` | Nível em que o desconto é aplicado                     |
| `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 lógica                                 |

## Relacionamentos

* Relaciona-se com [Promotional](/data-modelling/promotion/promotional) por `promotionalId`.
* Relaciona-se com [Company](/data-modelling/tenant/company) por `companyId`.
* Relaciona-se com [Route](/data-modelling/operations/route) por `routeId`.

## Regras de Negócio

* Deve existir apenas para Promotional com `type = ROUTE`.
* Cada Promotional `ROUTE` deve ter exatamente uma PromotionalRouteRule ativa.
* `routeId` deve apontar para uma Route existente e compatível com a mesma `companyId`.
* A promoção só é elegível quando a compra contém ticket de uma Trip vinculada à Route informada em `routeId`.
* `applyTo = TICKET` aplica o desconto somente nos tickets elegíveis da rota.
* `applyTo = ORDER` aplica o desconto no Order quando todos os critérios da rota forem atendidos.
* O front pode usar `routeId` para exibir a promoção em buscas daquela rota antes do checkout.
* `createdBy`, `updatedBy` e `deletedBy` seguem o padrão de auditoria do DEVMOB e registram o usuário responsável pela mutação, quando aplicável.

## Enums

### PromotionalRouteApplyTarget

| Valor    | Descrição                               |
| -------- | --------------------------------------- |
| `ORDER`  | Aplica o desconto no pedido             |
| `TICKET` | Aplica o desconto nos tickets elegíveis |

## Example

```json theme={null}
{
  "promotionalRouteRuleId": "0197f7c1-9ef8-75c8-850f-fd412ac3a159",
  "promotionalId": "0197f7c0-55de-7b18-9073-c7d7c8c9a441",
  "organizationId": "0197a801-1690-7590-b3cf-19599b9be3e4",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "routeId": "0197a80c-4204-7b77-9005-48cc23677587",
  "applyTo": "TICKET",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-04T15:05:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-04T15:05:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}
```
