2025-05-18 18:02:59 +00:00

59 lines
959 B
Python

from typing import List, Optional
from pydantic import BaseModel, Field
# Cart Item schemas
class CartItemBase(BaseModel):
product_id: int
quantity: int = Field(..., gt=0)
class CartItemCreate(CartItemBase):
pass
class CartItemUpdate(BaseModel):
quantity: Optional[int] = Field(None, gt=0)
class CartItemResponse(CartItemBase):
id: int
unit_price: float
subtotal: float
class Config:
from_attributes = True
# Cart schemas
class CartBase(BaseModel):
user_id: int
class CartCreate(CartBase):
pass
class CartResponse(CartBase):
id: int
items: List[CartItemResponse] = []
total: float
class Config:
from_attributes = True
# Schema for adding items to cart
class AddToCartRequest(CartItemBase):
pass
# Schema for cart summary
class CartSummary(BaseModel):
id: int
total: float
items_count: int
class Config:
from_attributes = True