from datetime import datetime from pydantic import BaseModel class CategoryBase(BaseModel): name: str slug: str description: str | None = None image: str | None = None parent_id: str | None = None is_active: bool | None = True display_order: int | None = 0 class CategoryCreate(CategoryBase): pass class CategoryUpdate(BaseModel): name: str | None = None slug: str | None = None description: str | None = None image: str | None = None parent_id: str | None = None is_active: bool | None = None display_order: int | None = None class CategoryInDBBase(CategoryBase): id: str created_at: datetime updated_at: datetime | None = None class Config: orm_mode = True class Category(CategoryInDBBase): pass class CategoryWithChildren(Category): subcategories: list['CategoryWithChildren'] = [] product_count: int = 0