我们需要为一家街角小店建一个购物车模型。购物车需要记录已添加的商品列表,并正确计算价格。
商品通过库存单位(SKU)编码添加进购物车。商店里的商品有:
| 名称 | 价格 | SKU |
|---|---|---|
| 土豆 | 10.00 | STAPOT |
| 大米 | 30.00 | STARIC |
| 咖啡 | 14.99 | STACOF |
| 报纸 | 2.99 | MEDNEW |
购物车需要支持以下操作:
故事的替代版本或扩展使用了可以添加到购物车中的折扣券。
为了让顾客满意,街角小店增加了折扣券。这意味着,为了支持这些折扣,我们的购物车需要能够读取折扣券,并将其应用于当前商品。支持的折扣券有:
| 类型 | SKU | 规则 |
|---|---|---|
| 固定金额折扣 | FIX_TEN | 从购物车总金额中减去 10.00 |
| 商品折扣 | HALF_STAPOT | 将所有 STAPOT 商品降为半价 |
购物车需要新增一个 scan coupon 操作,它接收一个 SKU,并将其添加到购物车。请注意,total_amount 不能是负数,total_amount 的最小值为 0。