from pydantic import BaseModel from typing import Optional, List class Device(BaseModel): """ Сканируемое устройство в подсети Атрибуты: ip (str): IP-адрес устройства mac (Optional[str]): MAC-адрес устройства hostname (Optional[str]): Имя хоста vendor (Optional[str]): Название производителя устройства (По MAC-адресу) open_ports (List[str]): Открытые порты устройства status (str): Статус устройства (онлайн/оффлайн) last_seen (Optional[str]): Последняя активность устройства note (Optional[str]): Заметка устройства """ ip: str mac: Optional[str] = None hostname: Optional[str] = None vendor: Optional[str] = None open_ports: List[str] = [] status: str last_seen: Optional[str] = None note: Optional[str] = None class SubnetScanResult(BaseModel): """ Результат сканирования устройств в подсети Атрибуты: devices (List[Device]): Список просканированных устройств """ devices: List[Device] = []