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 |
O carrinho de compras deve permitir que estas operações sejam realizadas:
Uma versão alternativa ou extensão da história usa cupons de desconto que podem ser adicionados ao carrinho de compras.
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 |
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.