57 lines
951 B
Python

from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, Field
from app.schemas.product import Product
# Cart Item schemas
class CartItemBase(BaseModel):
product_id: int
quantity: int = Field(1, gt=0)
class CartItemCreate(CartItemBase):
pass
class CartItemUpdate(BaseModel):
quantity: int = Field(..., gt=0)
class CartItemInDBBase(CartItemBase):
id: int
cart_id: int
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
class CartItem(CartItemInDBBase):
product: Optional[Product] = None
# Cart schemas
class CartBase(BaseModel):
user_id: int
class CartCreate(CartBase):
pass
class CartInDBBase(CartBase):
id: int
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
class Cart(CartInDBBase):
items: List[CartItem] = []