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

# TripTracking

> Último ping GPS aceito de uma viagem

## Campos

| Campo            | Tipo                 | Descrição                                           |
| ---------------- | -------------------- | --------------------------------------------------- |
| `tripTrackingId` | `UUID`               | Identificador único                                 |
| `tripId`         | `UUID`               | Referência única à viagem                           |
| `driverId`       | `UUID`               | Referência ao motorista que enviou o último ping    |
| `latitude`       | `Float`              | Latitude do último ping aceito                      |
| `longitude`      | `Float`              | Longitude do último ping aceito                     |
| `accuracyMeters` | `Int?`               | Precisão do último ping em metros                   |
| `speedKmh`       | `Float?`             | Velocidade reportada no último ping                 |
| `headingDegrees` | `Float?`             | Direção reportada no último ping, em graus          |
| `source`         | `TripTrackingSource` | Origem do último ping                               |
| `recordedAt`     | `DateTime?`          | Data/hora do último ping informada pelo dispositivo |
| `acceptedAt`     | `DateTime`           | Data/hora em que o backend aceitou o último ping    |
| `createdBy`      | `UUID?`              | Usuário que criou o registro, quando aplicável      |
| `createdAt`      | `DateTime`           | Data de criação                                     |
| `updatedBy`      | `UUID?`              | Usuário que atualizou o registro, quando aplicável  |
| `updatedAt`      | `DateTime`           | Data da última atualização                          |

## Relacionamentos

* Relaciona-se 1:1 com [Trip](/data-modelling/operations/trip)
* Relaciona-se com [Driver](/data-modelling/fleet/driver)

## Regras de Negócio

* TripTracking pertence ao domínio de Operations junto de Trip.
* TripTracking é a tabela auxiliar 1:1 da Trip para o último ping GPS aceito.
* `tripId` deve ser único em TripTracking.
* Cada Trip pode ter no máximo um TripTracking.
* Cada ping aceito atualiza o mesmo TripTracking da viagem.
* TripTracking não guarda histórico de pings.
* Um ping só pode atualizar TripTracking quando a Trip está `IN_PROGRESS`.
* `latitude` deve estar entre -90 e 90.
* `longitude` deve estar entre -180 e 180.
* `acceptedAt` é a fonte para detectar tracking desatualizado.

## Enums

### TripTrackingSource

| Valor                   | Descrição                                             |
| ----------------------- | ----------------------------------------------------- |
| `DRIVER_APP_FOREGROUND` | Ping enviado com o app do motorista em primeiro plano |
| `DRIVER_APP_BACKGROUND` | Ping enviado pelo app do motorista em segundo plano   |

## Example

```json theme={null}
{
  "tripTrackingId": "0197a812-12e1-77fb-a2d1-b6fbf0570f89",
  "tripId": "0197a80f-2d8f-7710-b243-b67fb477a1c0",
  "driverId": "0197a807-1ec7-75e8-8ff8-df64dd070046",
  "latitude": -23.55052,
  "longitude": -46.63331,
  "accuracyMeters": 12,
  "speedKmh": 42.7,
  "headingDegrees": 126.4,
  "source": "DRIVER_APP_BACKGROUND",
  "recordedAt": "2026-07-04T08:15:08.000Z",
  "acceptedAt": "2026-07-04T08:15:10.000Z",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-04T08:00:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-04T08:15:10.000Z"
}
```
