ADR-004: Endpoint AddRecommendedItem no PaymentController (checkout service)
O zzlink opera inteiramente através do checkout service — o GET api/payment/v2/{id} já faz a ponte entre payment e cart. Decidimos hospedar o novo endpoint POST api/payment/v2/{id}/add-recommended-item no PaymentController do checkout service, em vez de criar um endpoint direto no CartController ou um novo controller.
Considered Options
- A (escolhida): Endpoint no
PaymentControllerdo checkout service. O checkout service orquestra: valida o payment, valida a recomendação, chama a Cart API, atualiza oPayment.Total, retorna o DTO consolidado. - B: Endpoint no
CartControllerdo cart service. Exigiria que o zzlink conhecesse dois serviços distintos e duplicaria lógica de validação de payment/recomendação no cart service.
Consequences
A Cart API precisará de um novo endpoint interno (POST api/cart/{cartId}/items) chamado pelo checkout service via ApiKey "internal". Esse endpoint é escopo de uma task separada vinculada a #193232.