Skip to main content

Campos

Relacionamentos

Regras de Negócio

  • Agrupa tickets de uma única cooperativa dentro de um checkout.
  • Um checkout com tickets de múltiplas cooperativas gera um Order por cooperativa.
  • Um Order pode receber uma TripReview por Trip comprada.
  • Um checkout pode ter múltiplos TripReviews porque pode gerar múltiplos Orders e Trips.
  • customerId é obrigatório também em vendas POS.
  • Na venda POS, o sistema resolve ou cria User + Customer antes de criar o Order.
  • Quando a venda POS cria uma conta nova, o sistema não emite convite de ativação.
  • Na venda DRIVER_APP, o Order deve nascer de uma CheckoutSession confirmada.
  • Em venda DRIVER_APP, o Customer é resolvido pelo app do cliente ao escanear o QR Code; o motorista não seleciona Customer manualmente.
  • Em venda DRIVER_APP, soldById aponta para o User do motorista que iniciou a sessão.
  • O fluxo DRIVER_APP pode confirmar pagamento em dinheiro ou uso de crédito corporativo autorizado pelo Customer.
  • Todos os valores monetários são armazenados em centavos — ex.: R$ 150,00 = 15000.
  • baseAmount é a soma de Ticket.baseAmount.
  • discountAmount é a soma de Ticket.discountAmount.
  • creditAmount é a soma de Ticket.creditAmount.
  • paidAmount é a soma de Ticket.paidAmount.
  • amount é a soma de Ticket.price.
  • Créditos corporativos podem ser reservados no checkout, mas a captura definitiva é sempre por Ticket.
  • O Order serve como contexto comercial para o uso de crédito; ele não é a unidade final de consumo do crédito.
  • O campo code é um identificador legível único para o pedido.
  • Criação, confirmação, atualização por billing e cancelamento de Order solicitam auditoria via audit_log.requested com domain = SALES e resource = ORDER.
  • Cancelamento de Ticket feito pelo fluxo de Order solicita auditoria via audit_log.requested com domain = SALES e resource = TICKET.
  • Confirmação emite order.confirmed com o Order atualizado em data.
  • Cancelamento total emite order.cancelled com o Order atualizado em data.
  • Atualização vinda de billing emite order.updated com o Order atualizado em data.
  • Cancelamento de ticket emite ticket.cancelled com o Ticket atualizado em data.

Enums

OrderType

OrderStatus

Example