Skip to main content
TripTrackingPoint registra o histórico completo dos pings GPS aceitos durante uma Trip. Ele não substitui TripTracking. TripTracking guarda apenas o último ping aceito para leitura rápida; TripTrackingPoint guarda o trajeto completo para mapa, auditoria, análise de quilometragem e investigação posterior.

Campos

CampoTipoDescrição
tripTrackingPointIdUUIDIdentificador único
tripIdUUIDViagem relacionada
tripTrackingIdUUID?Último registro 1:1 atualizado pelo mesmo ping, quando existir
cooperativeIdUUIDCooperativa da Trip
transportOperatorIdUUIDPermissionário da Trip
driverIdUUIDMotorista que enviou o ping
latitudeFloatLatitude aceita
longitudeFloatLongitude aceita
accuracyMetersInt?Precisão reportada em metros
speedKmhFloat?Velocidade reportada
headingDegreesFloat?Direção reportada, em graus
sourceTripTrackingSourceOrigem do ping
recordedAtDateTime?Data/hora informada pelo dispositivo
acceptedAtDateTimeData/hora em que o backend aceitou o ping
sequenceIntOrdem do ping dentro da Trip
createdAtDateTimeData de criação

Relacionamentos

Regras de Negócio

  • Cada ping GPS aceito cria um TripTrackingPoint.
  • TripTrackingPoint é append-only: não deve ser atualizado para corrigir trajeto.
  • sequence deve ser incremental por tripId.
  • acceptedAt ordena o histórico quando houver diferença entre relógio do dispositivo e backend.
  • O histórico só recebe pings quando a Trip está IN_PROGRESS.
  • Pings rejeitados por status, coordenada inválida ou autorização não entram no histórico aceito.
  • cooperativeId, transportOperatorId e driverId devem repetir o contexto da Trip no momento do aceite.
  • O último TripTrackingPoint aceito deve refletir os mesmos dados do TripTracking da Trip.
  • Retenção, compactação ou arquivamento de pontos antigos deve preservar a rastreabilidade exigida pela operação.

Example

{
  "tripTrackingPointId": "01980e33-5bf9-7c09-9f18-c0e7d87b7d12",
  "tripId": "0197a80f-2d8f-7710-b243-b67fb477a1c0",
  "tripTrackingId": "0197a812-12e1-77fb-a2d1-b6fbf0570f89",
  "cooperativeId": "0197a800-24e6-76a2-90ed-ff0f6fba7b0c",
  "transportOperatorId": "01980d30-6a3c-7a42-9182-17ad6324d3aa",
  "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",
  "sequence": 42,
  "createdAt": "2026-07-04T08:15:10.000Z"
}