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
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.
tripIddeve 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. latitudedeve estar entre -90 e 90.longitudedeve 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 |