from datetime import datetime from typing import Any, Optional from pydantic import BaseModel class RackCreate(BaseModel): name: str description: Optional[str] = None location: Optional[str] = None zone_id: Optional[int] = None class RackUpdate(BaseModel): name: Optional[str] = None description: Optional[str] = None location: Optional[str] = None zone_id: Optional[int] = None class RackRead(BaseModel): id: int object_id: int name: str description: Optional[str] = None location: Optional[str] = None zone_id: Optional[int] = None zone_name: Optional[str] = None created_at: datetime model_config = {"from_attributes": True} @classmethod def from_orm_with_zone(cls, rack: Any) -> "RackRead": obj = cls.model_validate(rack) if rack.zone is not None: obj.zone_name = rack.zone.name return obj