from datetime import datetime from typing import Optional from pydantic import BaseModel, Field # Shared properties class ServiceBase(BaseModel): title: Optional[str] = None slug: Optional[str] = None description: Optional[str] = None icon: Optional[str] = None image_path: Optional[str] = None is_active: Optional[bool] = True order: Optional[int] = 0 # Properties to receive via API on creation class ServiceCreate(ServiceBase): title: str = Field(..., min_length=1, max_length=100) slug: str = Field(..., min_length=1, max_length=100) description: str # Properties to receive via API on update class ServiceUpdate(ServiceBase): pass class ServiceInDBBase(ServiceBase): id: int title: str slug: str description: str created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True # Additional properties to return via API class Service(ServiceInDBBase): pass