from pydantic import BaseModel from typing import Optional from datetime import datetime class Product(BaseModel): id: int name: str full_name: str description: Optional[str] = None category_id: int diameter: Optional[int] = None wall_thickness: Optional[float] = None length: Optional[int] = None color: Optional[str] = None application_type: Optional[str] = None stiffness_class: Optional[str] = None image_path: Optional[str] = None page_number: int = 1 created_at: datetime class Config: from_attributes = True class ProductCreate(BaseModel): name: str full_name: str description: Optional[str] = None category_id: int diameter: Optional[int] = None wall_thickness: Optional[float] = None length: Optional[int] = None color: Optional[str] = None application_type: Optional[str] = None stiffness_class: Optional[str] = None image_path: Optional[str] = None page_number: int = 1 class ProductUpdate(BaseModel): name: Optional[str] = None full_name: Optional[str] = None description: Optional[str] = None category_id: Optional[int] = None diameter: Optional[int] = None wall_thickness: Optional[float] = None length: Optional[int] = None color: Optional[str] = None application_type: Optional[str] = None stiffness_class: Optional[str] = None image_path: Optional[str] = None page_number: Optional[int] = None