from typing import List from datetime import datetime from pydantic import BaseModel, Field class CartItemBase(BaseModel): product_id: str quantity: int = Field(..., gt=0) class CartItemCreate(CartItemBase): pass class CartItemUpdate(BaseModel): quantity: int = Field(..., gt=0) class CartItemInDBBase(CartItemBase): id: str cart_id: str created_at: datetime updated_at: datetime class Config: orm_mode = True class CartItem(CartItemInDBBase): pass class CartBase(BaseModel): pass class CartCreate(CartBase): user_id: str class CartUpdate(CartBase): pass class CartInDBBase(CartBase): id: str user_id: str created_at: datetime updated_at: datetime class Config: orm_mode = True class Cart(CartInDBBase): items: List[CartItem] = []