Skip to main content
O domínio de Sales gerencia o fluxo comercial de venda de passagens. Ele conecta o domínio de Operations (viagens e itinerários disponíveis) ao domínio Billing (pagamentos e recebíveis).

Entidades

Order Lifecycle

Checkout, Orders por empresa, atualização de pagamento e cancelamento.

Ticket Pricing

Como o preço final do ticket é composto a partir de seatPrice e tripItineraryPrice.

Ticket Activity

Histórico de validação, embarque, rejeição, falha e reimpressão de passagens.

Modelo de Dados

Conceitos-Chave

  • Checkout agrupa a compra do cliente e pode gerar um ou mais Orders.
  • Order é o agrupador de passagens de uma única empresa — um pedido pode conter um ou mais tickets e sempre possui Customer.
  • Ticket é o item individual do pedido — representa uma passagem para um itinerário específico em um assento específico, com um passageiro associado.
  • TicketActivity registra tentativas de validação, embarque, rejeições, falhas e reimpressões.
  • O companyId identifica a empresa responsável pelos tickets e pelo fluxo financeiro daquele Order.
  • Cada Order registra o cliente (customerId → Customer) e o usuário responsável pela criação do pedido (soldById → User).
  • Os preços são congelados no momento da compra — alterações posteriores no itinerário ou categoria de assento não afetam passagens já emitidas. Cada Ticket também guarda um snapshot denormalizado para exibição.
  • Benefícios, promoções e créditos podem participar do checkout conforme suas próprias regras de domínio.
O Sales é o ponto de integração entre Operations e Billing. A venda de um Ticket ocupa assentos no TripSeatSegment (Operations) e gera obrigações de pagamento (Billing).