-
Notifications
You must be signed in to change notification settings - Fork 2.8k
/
Copy pathshopping_cart.py
29 lines (23 loc) · 936 Bytes
/
shopping_cart.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from typing import Dict, List
from order_item import OrderItem
from product import Product
class ShoppingCart:
def __init__(self):
self._items: Dict[str, OrderItem] = {}
def add_item(self, product: Product, quantity: int):
product_id = product.id
if product_id in self._items:
item = self._items[product_id]
quantity += item.quantity
self._items[product_id] = OrderItem(product, quantity)
def remove_item(self, product_id: str):
if product_id in self._items:
del self._items[product_id]
def update_item_quantity(self, product_id: str, quantity: int):
if product_id in self._items:
item = self._items[product_id]
self._items[product_id] = OrderItem(item.product, quantity)
def get_items(self) -> List[OrderItem]:
return list(self._items.values())
def clear(self):
self._items.clear()