Skip to main content
O TripEvent registra ocorrências operacionais durante o ciclo de vida de uma viagem. Eventos podem ser globais (afetam toda a viagem) ou escopados a uma parada (TripStop) específica.

Campos

CampoTipoDescrição
tripEventIdUUIDIdentificador único
tripIdUUIDViagem à qual o evento pertence
tripStopIdUUID (nullable)Parada específica (null = evento global)
typeTripEventTypeTipo do evento
descriptionstring (nullable)Descrição adicional do evento
metadataJSON (nullable)Dados adicionais estruturados
createdByUUID?Usuário que criou o registro, quando aplicável
createdAtdatetimeData/hora do registro
updatedByUUID?Usuário que fez a última atualização, quando aplicável
updatedAtdatetimeData de última atualização

Tipos de Evento

TripEventType

TipoEscopoDescrição
DRIVER_CHANGEDGlobalMotorista foi substituído durante a viagem
VEHICLE_CHANGEDGlobalVeículo foi substituído
DEPARTURE_DELAYEDGlobal ou ParadaPartida atrasada
ARRIVAL_DELAYEDGlobal ou ParadaChegada atrasada
BOARDING_STARTEDParadaEmbarque iniciado em um ponto de parada
BOARDING_COMPLETEDParadaEmbarque concluído em um ponto de parada
INCIDENTGlobal ou ParadaIncidente operacional (acidente, problema mecânico, etc.)

Eventos Globais vs Escopados

Evento Global (tripStopId = null)

Afeta a viagem inteira. Exemplos:
  • Troca de motorista — impacta todos os passageiros.
  • Troca de veículo — impacta todos os passageiros.
  • Atraso na partida da viagem — afeta todas as paradas.

Evento Escopado a Parada

Afeta apenas passageiros que embarcam ou desembarcam em uma parada específica. Exemplos:
  • Embarque iniciado na parada de Volta Redonda — relevante apenas para passageiros que embarcam ou desembarcam ali.
  • Atraso de chegada em Juiz de Fora — impacta apenas itinerários que passam por esse ponto.

Dados Adicionais (metadata)

O campo metadata armazena dados estruturados específicos do tipo de evento (união discriminada por type):
TipoCampos de metadata
DRIVER_CHANGEDpreviousDriverId, previousDriverName, previousDriverLicenseNumber, newDriverId, newDriverName, newDriverLicenseNumber
VEHICLE_CHANGEDpreviousVehicleId, previousVehicleLicensePlate, previousVehicleModel, newVehicleId, newVehicleLicensePlate, newVehicleModel
DEPARTURE_DELAYED / ARRIVAL_DELAYEDdelayMinutes, newEstimatedTime?, reason?
BOARDING_STARTEDexpectedPassengers?, stopName? (metadata opcional)
BOARDING_COMPLETEDtotalPassengers, noShowCount?, stopName?
INCIDENTseverity (LOW/MEDIUM/HIGH/CRITICAL), category (MECHANICAL/ACCIDENT/WEATHER/PASSENGER/ROAD_BLOCK/OTHER), affectedPassengers?, requiresReplacement?

Efeitos do registro

Registrar uma ocorrência cria um TripEvent vinculado à viagem. Quando o tipo é BOARDING_COMPLETED, o registro representa a conclusão de embarque daquela viagem/parada.
Registrar um evento não altera o status da viagem. Em particular, BOARDING_COMPLETED não move a viagem para IN_PROGRESS.
TripEvents não recebem edição de conteúdo no fluxo de negócio. Eles formam um histórico operacional da viagem.