35 lines
592 B
Python
35 lines
592 B
Python
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from app.schemas.product import Product
|
|
|
|
|
|
class CartItemBase(BaseModel):
|
|
product_id: str
|
|
quantity: int = Field(..., gt=0)
|
|
|
|
|
|
class CartItemCreate(CartItemBase):
|
|
pass
|
|
|
|
|
|
class CartItemUpdate(BaseModel):
|
|
quantity: int = Field(..., gt=0)
|
|
|
|
|
|
class CartItem(CartItemBase):
|
|
id: str
|
|
user_id: str
|
|
product: Optional[Product] = None
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
class Cart(BaseModel):
|
|
items: List[CartItem] = []
|
|
total: float = 0
|
|
|
|
class Config:
|
|
orm_mode = True |