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

# TransportOperator

> Permissionário autorizado a operar transporte dentro de uma cooperativa

## Campos

| Campo                 | Tipo                                | Descrição                                              |
| --------------------- | ----------------------------------- | ------------------------------------------------------ |
| `transportOperatorId` | `UUID`                              | Identificador único                                    |
| `cooperativeId`       | `UUID`                              | Cooperativa responsável pelo permissionário            |
| `legalName`           | `String`                            | Nome legal do permissionário                           |
| `tradeName`           | `String?`                           | Nome fantasia, quando existir                          |
| `document`            | `String`                            | Documento normalizado                                  |
| `documentType`        | `DocumentType`                      | Tipo do documento                                      |
| `status`              | `TransportOperatorStatus`           | Status cadastral e operacional                         |
| `regularityStatus`    | `TransportOperatorRegularityStatus` | Situação de regularidade para operação                 |
| `blockedReason`       | `String?`                           | Motivo do bloqueio, quando aplicável                   |
| `approvedBy`          | `UUID?`                             | Usuário que aprovou o permissionário                   |
| `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                             |
| `deletedBy`           | `UUID?`                             | Usuário que removeu o registro, quando aplicável       |
| `deletedAt`           | `DateTime?`                         | Data de remoção                                        |

## Relacionamentos

* Relaciona-se com [Cooperative](/data-modelling/tenant/cooperative) por `cooperativeId`.
* Relaciona-se com múltiplos [TransportOperatorRoute](/data-modelling/operations/transport-operator-route).
* Relaciona-se com múltiplos [TransportOperatorQuota](/data-modelling/operations/transport-operator-quota).
* Relaciona-se com múltiplas [TransportOperatorSubsidyRule](/data-modelling/operations/transport-operator-subsidy-rule).
* Relaciona-se com múltiplos [DriverTransportOperator](/data-modelling/fleet/driver-transport-operator).
* Relaciona-se com múltiplos [VehicleTransportOperator](/data-modelling/fleet/vehicle-transport-operator).
* Relaciona-se com múltiplas [Trip](/data-modelling/operations/trip).
* Relaciona-se com múltiplas [TripReview](/data-modelling/operations/trip-review).

## Regras de Negócio

* Representa o permissionário: quem tem autorização operacional para executar transporte dentro da cooperativa.
* Pode representar pessoa física, MEI ou empresa permissionária, conforme regra do negócio.
* Não é o mesmo que `User`: usuários acessam o sistema; o TransportOperator recebe autorização, bloqueio, cota, subsídio e auditoria operacional.
* Não é o mesmo que `Driver`: motorista dirige uma Trip; TransportOperator é o titular autorizado da operação.
* A relação principal é `Cooperative 1:N TransportOperator`.
* Um TransportOperator só pode operar uma rota se existir [TransportOperatorRoute](/data-modelling/operations/transport-operator-route) ativo.
* A materialização e o start da Trip devem bloquear operação quando `status = BLOCKED` ou `regularityStatus = IRREGULAR`.
* Cotas e subsídios são configurados por TransportOperator e, quando aplicável, por rota/período.

## Enums

### TransportOperatorStatus

| Valor              | Descrição                                   |
| ------------------ | ------------------------------------------- |
| `PENDING_APPROVAL` | Cadastro criado e aguardando análise        |
| `ACTIVE`           | Permissionário ativo                        |
| `INACTIVE`         | Permissionário inativo para novas operações |
| `BLOCKED`          | Permissionário bloqueado operacionalmente   |
| `REJECTED`         | Cadastro rejeitado                          |

### TransportOperatorRegularityStatus

| Valor            | Descrição                                |
| ---------------- | ---------------------------------------- |
| `PENDING_REVIEW` | Regularidade ainda em análise            |
| `REGULAR`        | Apto a operar, respeitando demais regras |
| `IRREGULAR`      | Irregular; operação deve ser bloqueada   |

## Example

```json theme={null}
{
  "transportOperatorId": "01980d30-6a3c-7a42-9182-17ad6324d3aa",
  "cooperativeId": "0197a800-24e6-76a2-90ed-ff0f6fba7b0c",
  "legalName": "João Silva Transportes Ltda",
  "tradeName": "Silva Transportes",
  "document": "12345678000190",
  "documentType": "CNPJ",
  "status": "ACTIVE",
  "regularityStatus": "REGULAR",
  "blockedReason": null,
  "approvedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "approvedAt": "2026-07-03T15:00:00.000Z",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T14:30:00.000Z",
  "updatedBy": "0197a806-7a50-7d8d-b2ea-07748f4e38f7",
  "updatedAt": "2026-07-03T15:00:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}
```
