Tenemos que modelar un carrito de la compra para una tienda de barrio. El carrito debe llevar un registro de la lista de artículos que se añaden y calcular correctamente el precio.
Los artículos se añaden a la cesta mediante códigos SKU (unidad de mantenimiento de existencias). Los artículos de la tienda son:
| Nombre | Precio | SKU |
|---|---|---|
| Potatoes | 10.00 | STAPOT |
| Rice | 30.00 | STARIC |
| Coffee | 14.99 | STACOF |
| Newspaper | 2.99 | MEDNEW |
El carrito de la compra debe permitir realizar estas operaciones:
Una versión alternativa o una ampliación de la historia usa cupones de descuento que se pueden añadir al carrito de la compra.
Para mantener contentos a los clientes, la tienda de barrio ha añadido cupones de descuento. Esto significa que, para admitir estos descuentos, nuestro carrito de la compra tiene que ser capaz de leer y aplicar cupones de descuento a los artículos actuales. Los cupones admitidos son:
| Tipo | SKU | Regla |
|---|---|---|
| Descuento de precio fijo | FIX_TEN | Aplica un descuento de 10.00 al importe total del carrito |
| Descuento de producto | HALF_STAPOT | Reduce a la mitad el precio de todos los artículos STAPOT |
El carrito de la compra debe tener una nueva operación scan coupon, que recibe un SKU y lo añade al carrito. Ten en cuenta que el total_amount no puede ser un número negativo; el valor mínimo del total_amount es 0.