Skip to content

Commit 17ad3dd

Browse files
committed
cart models and service layer
1 parent e841485 commit 17ad3dd

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

models/entity/cart_entity.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,28 @@ class CartEntity(SQLModel, table=True ):
1414
total_price: float = Field(default=0.0)
1515
total_quantity: int = Field(default=0)
1616
notes: Optional[str] = None
17+
18+
def add_item(self, item: CartItemEntity):
19+
self.items.append(item)
20+
self.total_price += item.price
21+
self.total_quantity += item.quantity
22+
23+
def remove_item(self, item: CartItemEntity):
24+
self.items.remove(item)
25+
self.total_price -= item.price
26+
self.total_quantity -= item.quantity
27+
28+
29+
def clear(self):
30+
self.items = []
31+
self.total_price = 0.0
32+
self.total_quantity = 0
33+
34+
def get_total_price(self):
35+
return sum(item.price * item.quantity for item in self.items)
36+
37+
def get_total_quantity(self):
38+
return sum(item.quantity for item in self.items)
39+
40+
def get_items(self):
41+
return self.items
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from models.entity.cart_item_entity import CartItemEntity
2+
3+
4+
class CartItemService(object):
5+
def __init__(self, cart_item_entity: CartItemEntity):
6+
self.cart_item_entity = cart_item_entity
7+
8+
def add_item(self, item: CartItemEntity):
9+
self.cart_item_entity.add_item(item)
10+
11+
def remove_item(self, item: CartItemEntity):
12+
self.cart_item_entity.remove_item(item)
13+
14+
def clear(self):
15+
self.cart_item_entity.clear()

models/service/cart_service.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class CartService(object):
2+
def __init__(self, cart_repository: CartRepository):
3+
self.cart_repository = cart_repository
4+
5+
def add_item(self, item: CartItemEntity):
6+
self.cart_repository.add_item(item)

0 commit comments

Comments
 (0)