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

# TripEvent

> Eventos operacionais registrados durante uma viagem

## Campos

| Campo         | Tipo            | Descrição                                                       |
| ------------- | --------------- | --------------------------------------------------------------- |
| `tripEventId` | `UUID`          | Identificador único                                             |
| `tripId`      | `UUID`          | Referência à viagem                                             |
| `tripStopId`  | `UUID?`         | Referência à parada específica relacionada a TripStop, opcional |
| `type`        | `TripEventType` | Tipo do evento                                                  |
| `description` | `String?`       | Descrição adicional do evento                                   |
| `metadata`    | `Json?`         | Dados adicionais estruturados                                   |
| `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 [Trip](/data-modelling/operations/trip)
* Relaciona-se opcionalmente com [TripStop](/data-modelling/operations/trip-stop)

## Regras de Negócio

* Registro append-only — eventos não podem ser editados ou removidos.
* Se `tripStopId` é preenchido, o evento é escopado a uma parada específica.
* Se `tripStopId` é nulo, o evento é global para toda a viagem.

## Enums

### TripEventType

| Valor                | Descrição                              |
| -------------------- | -------------------------------------- |
| `DRIVER_CHANGED`     | Motorista substituído durante a viagem |
| `VEHICLE_CHANGED`    | Veículo substituído                    |
| `DEPARTURE_DELAYED`  | Partida atrasada                       |
| `ARRIVAL_DELAYED`    | Chegada atrasada                       |
| `BOARDING_STARTED`   | Embarque iniciado em uma parada        |
| `BOARDING_COMPLETED` | Embarque concluído em uma parada       |
| `INCIDENT`           | Incidente operacional                  |

## Example

```json theme={null}
{
  "tripEventId": "0197a811-5d1b-7e6a-acd5-1dc2e8f2d6c8",
  "tripId": "0197a80f-2d8f-7710-b243-b67fb477a1c0",
  "tripStopId": "0197a810-1ec9-7a9a-9a41-df98334b870e",
  "type": "BOARDING_STARTED",
  "description": "Embarque iniciado no Terminal Rodoviário Tietê",
  "metadata": {
    "stopName": "Terminal Rodoviário Tietê",
    "expectedPassengers": 12
  },
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-04T07:45:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-04T07:45:00.000Z"
}
```
