ADR-006: Retorno 200 com subset do GetInfo (Values + Products + PaymentMethods + RecommendedItems)
Após adicionar um item recomendado, o zzlink precisa atualizar a tela com os novos valores do pedido. Decidimos retornar um DTO específico com apenas os dados que mudam, em vez de retornar o GetInfoDTO completo ou forçar um segundo GET api/payment/v2/{id}.
O DTO de retorno contém:
Values— totais recalculados (incluiTotal,TotalWhenPix, descontos, subtotais)List<Product>— lista completa e atualizada dos itens do cartPaymentMethods— formas de pagamento com parcelas recalculadas para o novo totalList<RecommendedItemsInfoDTO>— lista atualizada de recomendações (item aceito removido por deduplicação de SKU)
Todos os tipos já existem em GetInfoBase.cs — sem novos contratos de domínio.
Considered Options
- A (escolhida): Subset com os quatro campos acima. Retorna apenas o que muda, reutiliza tipos existentes.
- B:
GetInfoDTOcompleto. Mais simples de implementar, mas retorna dados desnecessários (dados do cliente, endereço, status do payment, customLink, etc.) que o front já possui. - C:
200 OKsem body + novoGETpelo front. Dois roundtrips; piora a experiência de resposta na tela.
Consequences
PaymentMethods deve ser sempre recalculado junto que o valor do pedido muda (add ou remove item), pois as parcelas disponíveis dependem do total.