Skip to main content

ADR-008: Expor cartItemId no Product DTO

O record Product em GetInfoBase.cs não expunha o Id do CartItemsModel (cartItemId). O campo existia em CartItemsInfoDTO (populado pela query SQL) mas era descartado no mapeamento. Decidimos expô-lo como campo novo no Product DTO para que o zzlink possa identificar cada item do cart de forma inequívoca e usá-lo no endpoint de remoção.

Considered Options

  • A (escolhida): Adicionar cartItemId ao record Product em GetInfoBase.cs. Campo aditivo — não quebra contratos existentes. O zzlink passa a armazenar o ID e o usa na chamada DELETE api/payment/v2/{id}/remove-recommended-item.
  • B: Checkout service recebe productId + size do zzlink e resolve internamente o cartItemId. Rejeitado — ambíguo quando dois CartItems têm o mesmo productId + size (ex: dois itens do mesmo produto adicionados separadamente), e adiciona lookup desnecessário no handler.