Skip to main content

Campos

Relacionamentos

Regras de Negócio

  • Os preços são congelados no momento da compra (snapshot).
  • baseAmount = seatPrice + tripItineraryPrice.
  • discountAmount = benefitDiscountAmount.
  • price = baseAmount - discountAmount.
  • paidAmount = price - creditAmount.
  • paidAmount não pode ser menor que zero.
  • cooperativeId e transportOperatorId repetem o ownership operacional da Trip no momento da emissão.
  • O ticket pertence operacionalmente à cooperativa, mesmo quando o pagamento usa crédito concedido por uma Company.
  • Benefício é aplicado no nível do passageiro/ticket. Se houver benefício nominal, passengerBenefitRequestId e benefitDocumentValidationId registram a evidência usada.
  • Todos os valores monetários são armazenados em centavos.
  • O code é único e identifica a passagem de forma legível; qrCode é o payload usado na validação de embarque.
  • O boardedAt é preenchido quando o motorista registra o embarque. Embarque é bloqueado se a passagem estiver cancelada ou já embarcada.
  • Ao cancelar um Ticket, os TripSeatSegments do ticket são liberados e o assento volta a ficar disponível para os mesmos segmentos.
  • Tentativas de validação, reimpressões e eventos operacionais do ticket ficam em TicketActivity.

Snapshot

TicketSnapshot

TicketSnapshotStop

Enums

TicketStatus

Example