from datetime import datetime from typing import Optional from pydantic import BaseModel class ServerBase(BaseModel): name: str ip_address: str description: Optional[str] = None sort_order: int = 0 is_active: bool = True class ServerCreate(ServerBase): pass class ServerUpdate(BaseModel): name: Optional[str] = None ip_address: Optional[str] = None description: Optional[str] = None sort_order: Optional[int] = None is_active: Optional[bool] = None class ServerAvailability(BaseModel): availability_30d: Optional[float] = None availability_90d: Optional[float] = None availability_365d: Optional[float] = None class ServerResponse(ServerBase): id: int recorded_at: datetime last_result: Optional[bool] = None last_response_time: Optional[float] = None availability: Optional[ServerAvailability] = None class Config: from_attributes = True