from datetime import datetime, UTC from typing import Optional from pydantic import BaseModel class CPUBase(BaseModel): time: Optional[datetime] = datetime.fromtimestamp(0, UTC) name: str socket: int cores: int class CPUCreate(CPUBase): host_id: int usage: float class CPU(CPUBase): id: int class Config: from_attributes = True class MemoryBase(BaseModel): type: str class MemoryCreate(MemoryBase): host_id: int class Memory(MemoryBase): total: int used: Optional[int] usage: Optional[float] class Config: from_attributes = True class HostBase(BaseModel): hostname: str class HostCreate(HostBase): pass class Host(HostBase): id: int cpus: Optional[list['CPU']] memory: Optional[list['Memory']] class Config: from_attributes = True