from pydantic import BaseModel, ConfigDict, HttpUrl, field_validator def _blank_to_none(value: str | None) -> str | None: if isinstance(value, str) and not value.strip(): return None return value class ManufacturerBase(BaseModel): name: str url: HttpUrl | None = None logo_url: HttpUrl | None = None _normalize_url = field_validator("url", "logo_url", mode="before")( _blank_to_none ) class ManufacturerCreate(ManufacturerBase): pass class ManufacturerUpdate(BaseModel): name: str | None = None url: HttpUrl | None = None logo_url: HttpUrl | None = None _normalize_url = field_validator("url", "logo_url", mode="before")( _blank_to_none ) class ManufacturerRead(ManufacturerBase): model_config = ConfigDict(from_attributes=True) id: int