Πρέπει να μοντελοποιήσουμε ένα καλάθι αγορών για ένα μπακάλικο. Το καλάθι θα πρέπει να κρατά τη λίστα των ειδών που προστέθηκαν και να υπολογίζει σωστά την τιμή.
Τα είδη προστίθενται στο καλάθι με κωδικούς SKU (μονάδα τήρησης αποθέματος). Τα είδη του καταστήματος είναι:
| Όνομα | Τιμή | SKU |
|---|---|---|
| Potatoes | 10.00 | STAPOT |
| Rice | 30.00 | STARIC |
| Coffee | 14.99 | STACOF |
| Newspaper | 2.99 | MEDNEW |
Το καλάθι αγορών θα πρέπει να επιτρέπει τις εξής λειτουργίες:
Μια εναλλακτική έκδοση ή επέκταση της ιστορίας χρησιμοποιεί κουπόνια έκπτωσης που μπορούν να προστεθούν στο καλάθι αγορών.
Για να κρατήσουμε τους πελάτες ευχαριστημένους, το μπακάλικο πρόσθεσε κουπόνια έκπτωσης. Αυτό σημαίνει ότι, για να υποστηρίξουμε αυτές τις εκπτώσεις, το καλάθι αγορών μας πρέπει να μπορεί να διαβάζει και να εφαρμόζει κουπόνια έκπτωσης στα τρέχοντα είδη. Τα υποστηριζόμενα κουπόνια είναι:
| Τύπος | SKU | Κανόνας |
|---|---|---|
| Έκπτωση σταθερής τιμής | FIX_TEN | Αφαιρεί 10.00 από το συνολικό ποσό του καλαθιού |
| Έκπτωση προϊόντος | HALF_STAPOT | Μειώνει όλα τα είδη STAPOT στη μισή τιμή |
Το καλάθι αγορών θα πρέπει να έχει μια νέα λειτουργία scan coupon που παίρνει ένα SKU και το προσθέτει στο καλάθι. Λάβε υπόψη ότι το total_amount δεν πρέπει να είναι αρνητικός αριθμός. Η ελάχιστη τιμή για το total_amount είναι 0.