Carrello della spesa


Storia

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

Attività

Il carrello della spesa deve permettere di eseguire queste operazioni:

  • Aggiungere articoli al carrello: legge un codice SKU e lo aggiunge al carrello.
  • Controllare l'importo totale: il valore totale degli articoli nel carrello, come numero con due cifre decimali (ad es. 3.99).
  • Controllare gli articoli contenuti nel carrello: un elenco dei nomi degli articoli nel carrello, in ordine alfabetico, senza duplicati, separati da una virgola e uno spazio.

Terminologia

  • Articolo: prodotto che può essere aggiunto al carrello della spesa.
  • SKU: lo SKU è un identificatore composto dalle prime tre lettere maiuscole del tipo di prodotto + le prime tre lettere maiuscole del nome del prodotto.
  • Prezzo: il valore dell'articolo come numero con due cifre decimali.

Implementazioni

Versione alternativa

Una versione alternativa o un'estensione della storia usa dei coupon di sconto che possono essere aggiunti al carrello della spesa.

Storia

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

Attività

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.

Terminologia

  • Coupon: sconto che può essere applicato al carrello. I coupon sono unici e possono essere applicati una sola volta. Se il tipo di coupon è uno sconto a prezzo fisso, la seconda parte dello SKU è l'importo scontato in lettere maiuscole.

Implementazioni