Máquina de Estados da Venda
Detalhamento do ciclo de vida de uma Venda no backend-store, incluindo os fluxos alternativos de retirada e o gatilho da baixa automática de estoque.
Estados
- Criado
-
Estado inicial de uma venda, criada a partir de uma intenção de compra registrada no sistema.
- Pago
-
Indica que o pagamento da venda foi confirmado (via integração financeira).
- Aguardando retirada
-
O produto já está disponível para o aluno, mas a retirada física ainda não ocorreu.
- Retirado
-
Estado final que representa a entrega física do item (ou confirmação de serviço prestado). Dispara automaticamente a baixa no estoque.
- Cancelado
-
Estado final que representa o cancelamento da venda antes da confirmação do pagamento.
Transições
-
Criado → Pago: disparada pela confirmação de pagamento.
-
Criado → Cancelado: a venda pode ser cancelada por desistência ou erro, apenas antes do pagamento.
-
Pago → Aguardando retirada: fluxo principal — o produto é disponibilizado, mas a retirada ainda não ocorreu.
-
Aguardando retirada → Retirado: retirada confirmada. Dispara a baixa automática de estoque.
-
Pago → Retirado: fluxo alternativo de retirada imediata, sem passar por Aguardando retirada (ex.: retirada no balcão). Também dispara a baixa automática de estoque.
Qualquer outra transição não listada acima é inválida e rejeitada pelo backend (422).