2025-06-04 22:37:35 +00:00

53 lines
1001 B
Python

from typing import Optional
from pydantic import BaseModel, Field
# Category schemas
class CategoryBase(BaseModel):
name: str
description: Optional[str] = None
class CategoryCreate(CategoryBase):
pass
class CategoryUpdate(CategoryBase):
name: Optional[str] = None
class Category(CategoryBase):
id: str
class Config:
orm_mode = True
# Product schemas
class ProductBase(BaseModel):
name: str
description: Optional[str] = None
price: float = Field(..., gt=0)
stock_quantity: int = Field(..., ge=0)
is_active: bool = True
image_url: Optional[str] = None
category_id: Optional[str] = None
class ProductCreate(ProductBase):
pass
class ProductUpdate(ProductBase):
name: Optional[str] = None
price: Optional[float] = Field(None, gt=0)
stock_quantity: Optional[int] = Field(None, ge=0)
class Product(ProductBase):
id: str
category: Optional[Category] = None
class Config:
orm_mode = True