Campos
Relacionamentos
- Relaciona-se com Checkout.
- Relaciona-se com Customer.
- Relaciona-se com Organization.
- Relaciona-se com Cooperative.
- Relaciona-se com User como responsável pela criação.
- Relaciona-se com múltiplos Ticket.
- Relaciona-se com Payment (1:1, opcional).
- Relaciona-se com múltiplos TripReview.
- Relaciona-se com múltiplos BenefitUsageHistory, quando benefício é aplicado ao pedido.
- Relaciona-se com múltiplos CreditLedgerEntry, quando tickets do pedido usam créditos corporativos.
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+Customerantes 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,soldByIdaponta para o User do motorista que iniciou a sessão. - O fluxo
DRIVER_APPpode 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 deTicket.baseAmount.discountAmounté a soma deTicket.discountAmount.creditAmounté a soma deTicket.creditAmount.paidAmounté a soma deTicket.paidAmount.amounté a soma deTicket.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.requestedcomdomain = SALESeresource = ORDER. - Cancelamento de Ticket feito pelo fluxo de Order solicita auditoria via
audit_log.requestedcomdomain = SALESeresource = TICKET. - Confirmação emite
order.confirmedcom o Order atualizado emdata. - Cancelamento total emite
order.cancelledcom o Order atualizado emdata. - Atualização vinda de billing emite
order.updatedcom o Order atualizado emdata. - Cancelamento de ticket emite
ticket.cancelledcom o Ticket atualizado emdata.