Dobbiamo modellare un carrello della spesa per un negozio di quartiere. Il carrello deve tenere traccia dell'elenco degli articoli aggiunti e calcolare correttamente il prezzo.
Gli articoli vengono aggiunti al carrello tramite i codici SKU (stock-keeping unit). Gli articoli disponibili nel negozio sono:
| Name | Price | SKU |
|---|---|---|
| Potatoes | 10.00 | STAPOT |
| Rice | 30.00 | STARIC |
| Coffee | 14.99 | STACOF |
| Newspaper | 2.99 | MEDNEW |
Il carrello della spesa deve permettere di eseguire queste operazioni:
Una versione alternativa o un'estensione della storia usa dei coupon di sconto che possono essere aggiunti al carrello della spesa.
Per mantenere felici i clienti, il negozio di quartiere ha aggiunto dei coupon di sconto. Questo significa che, per supportare questi sconti, il nostro carrello della spesa deve essere in grado di leggere e applicare i coupon di sconto agli articoli presenti. I coupon supportati sono:
| Tipo | SKU | Regola |
|---|---|---|
| Sconto a prezzo fisso | FIX_TEN | Applica uno sconto di 10.00 sull'importo totale del carrello |
| Sconto sul prodotto | HALF_STAPOT | Riduce a metà prezzo tutti gli articoli STAPOT |
Il carrello della spesa deve avere una nuova operazione scan coupon che riceve un codice SKU e lo aggiunge al carrello. Tieni presente che total_amount non deve essere un numero negativo: il valore minimo di total_amount è 0.