"""
Product Category request schema definitions.
"""

from typing import Optional
from pydantic import Field, BaseModel
from src.apps.product_categories.schemas.common import ProductCategoryCreateSchema, ProductCategoryUpdateSchema


class ProductCategoryCreateRequest(ProductCategoryCreateSchema):
    """Request schema for creating a new product category."""
    pass


class ProductCategoryUpdateRequest(ProductCategoryUpdateSchema):
    """Request schema for updating a product category."""
    pass


class ProductCategoryFilterRequest(BaseModel):
    """Request schema for filtering product categories."""
    
    search: Optional[str] = Field(None, description="Search across name, code, description")
    name: Optional[str] = Field(None, description="Filter by category name")
    code: Optional[str] = Field(None, description="Filter by category code")
    merchant_id: Optional[int] = Field(None, description="Filter by merchant ID")
    parent_id: Optional[int] = Field(None, description="Filter by parent category ID")
    is_active: int = Field(0, description="Filter by active status (0=all, 1=active, -1=inactive)")