from pydantic import BaseModel from typing import Optional, Dict, List from datetime import datetime from .container import Container class AgentBase(BaseModel): name: str host: str port: int token: str class AgentCreate(AgentBase): pass class AgentUpdate(BaseModel): name: Optional[str] = None host: Optional[str] = None port: Optional[int] = None token: Optional[str] = None class Agent(AgentBase): id: str status: str version: str last_seen: datetime created_at: datetime updated_at: datetime containers: List[Container] class Config: from_attributes = True class AgentStatus(BaseModel): status: str version: str last_seen: datetime containers_count: int system_info: Dict[str, str] class AgentRegistration(BaseModel): name: str hostname: str ip_address: str docker_version: str class Agent(BaseModel): id: str name: str hostname: str ip_address: str docker_version: str status: str last_seen: datetime containers: List[Container]