Carrinho de compras


História

Precisamos modelar um carrinho de compras para um mercadinho da esquina. O carrinho deve acompanhar a lista de itens adicionados e calcular o preço corretamente.

Os itens são adicionados à cesta por meio de códigos de unidade de manutenção de estoque (SKU). Os itens do mercadinho são:

Nome Preço SKU
Potatoes 10.00 STAPOT
Rice 30.00 STARIC
Coffee 14.99 STACOF
Newspaper 2.99 MEDNEW

Tarefas

O carrinho de compras deve permitir que estas operações sejam realizadas:

  • Adicionar itens ao carrinho: lê um SKU e o adiciona ao carrinho.
  • Verificar o valor total: o valor total dos itens no carrinho como um número com duas casas decimais (por exemplo, 3.99).
  • Verificar os itens contidos no carrinho: uma lista com os nomes dos itens no carrinho, em ordem alfabética, sem duplicatas, separados por uma vírgula e um espaço.

Terminologia

  • Item: artigo que pode ser adicionado ao carrinho de compras.
  • SKU: o SKU é um identificador formado pelas três primeiras letras maiúsculas do tipo do produto + as três primeiras letras maiúsculas do nome do produto.
  • Preço: o valor do item como um número com duas casas decimais.

Implementações

Versão alternativa

Uma versão alternativa ou extensão da história usa cupons de desconto que podem ser adicionados ao carrinho de compras.

História

Para manter os clientes satisfeitos, o mercadinho adicionou cupons de desconto. Isso significa que, para dar suporte a esses descontos, nosso carrinho de compras precisa conseguir ler e aplicar cupons de desconto aos itens atuais. Os cupons suportados são:

Tipo SKU Regra
Desconto de preço fixo FIX_TEN Dá 10.00 de desconto no valor total do carrinho
Desconto de produto HALF_STAPOT Reduz todos os itens STAPOT para metade do preço

Tarefas

O carrinho de compras deve ter uma nova operação scan coupon, que recebe um SKU e o adiciona ao carrinho. Lembre-se de que total_amount não pode ser um número negativo: o valor mínimo de total_amount é 0.

Terminologia

  • Cupom: desconto que pode ser aplicado ao carrinho. Os cupons são únicos e podem ser aplicados apenas uma vez. Se o tipo do cupom for um desconto de preço fixo, a segunda parte do SKU é o valor do desconto em letras maiúsculas.

Implementações