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 model_config = { "from_attributes": 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 model_config = { "from_attributes": True } class Cart(CartInDBBase): items: List[CartItem] = []