utp_service/backend/app/schemas/rack.py
2026-04-07 11:55:28 +03:00

38 lines
915 B
Python

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