from sqlmodel import Field, SQLModel class ProductsBase(SQLModel): name: str price: float image: str class Products(ProductsBase, table=True): id: int | None = Field(default=None, primary_key=True) class ProductsCreate(ProductsBase): pass class ProductsRead(ProductsBase): id: int class ProductsUpdate(SQLModel): name: str | None = None price: float | None = None image: str | None = None class CartItemBase(SQLModel): product_id: int class CartItemAdd(CartItemBase): pass class CartItem(CartItemBase): count: int = 0 class CartItemRead(CartItem): pass class CartItemWithProduct(CartItemRead): product: ProductsRead | None = None total_price: float = 0