Skip to main content
TicketActivity registra eventos operacionais ligados a uma passagem. Ele preserva tentativas de validação, reimpressões, embarques e falhas sem sobrecarregar o estado principal do Ticket.

Campos

CampoTipoDescrição
ticketActivityIdUUIDIdentificador único
ticketIdUUIDPassagem relacionada
tripIdUUID?Viagem relacionada, quando a atividade acontece no embarque
driverIdUUID?Motorista que executou a atividade, quando aplicável
userIdUUID?Usuário que executou a atividade
typeTicketActivityTypeTipo de atividade registrada
resultTicketActivityResultResultado da atividade
reasonString?Motivo técnico ou operacional quando a atividade falha ou é rejeitada
metadataJson?Dados específicos da atividade
occurredAtDateTimeData em que a atividade ocorreu
createdByUUID?Usuário que criou o registro, quando aplicável
createdAtDateTimeData de criação

Relacionamentos

  • Relaciona-se com Ticket.
  • Relaciona-se com Trip, quando a atividade ocorre em uma viagem.
  • Relaciona-se com Driver, quando a atividade é feita pelo app do motorista.
  • Relaciona-se com User, quando existe usuário responsável pela ação.

Regras de Negócio

  • O registro é append-only.
  • Validação de QR Code, tentativa duplicada, tentativa inválida, embarque e reimpressão devem criar uma atividade.
  • Ticket.boardedAt continua sendo o estado consolidado do embarque.
  • TicketActivity mantém o histórico operacional que explica como o estado do ticket foi atingido.
  • metadata deve ser usado para dados variáveis, como payload lido, origem do scan, dispositivo, stop ou motivo detalhado.

Enums

TicketActivityType

ValorDescrição
QR_VALIDATION_ATTEMPTTentativa de validação do QR Code
BOARDING_RECORDEDEmbarque registrado
REPRINTReimpressão ou reemissão de comprovante

TicketActivityResult

ValorDescrição
SUCCESSAtividade concluída com sucesso
FAILEDAtividade falhou por erro técnico ou operacional
REJECTEDAtividade rejeitada por regra de negócio

Example

{
  "ticketActivityId": "01980b70-5b2f-7d50-8c7f-9b5f2e4f7c21",
  "ticketId": "0197a813-a9a6-7752-8173-d40a2a2d0ef0",
  "tripId": "0197a80f-2d8f-7710-b243-b67fb477a1c0",
  "driverId": "0197a807-1ec7-75e8-8ff8-df64dd070046",
  "userId": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "type": "QR_VALIDATION_ATTEMPT",
  "result": "SUCCESS",
  "reason": null,
  "metadata": {
    "source": "DRIVER_APP",
    "payloadHash": "sha256:3f0d...",
    "stopOrder": 0
  },
  "occurredAt": "2026-07-04T08:05:00.000Z",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-04T08:05:00.000Z"
}