"""设备相关 Schema""" from pydantic import BaseModel from typing import Optional from datetime import datetime class ONUDeviceBase(BaseModel): mac_address: str olt_id: Optional[int] = None region: Optional[str] = None school_name: Optional[str] = None building: Optional[str] = None place_type: Optional[str] = None # 场所类型 room_number: Optional[str] = None notes: Optional[str] = None # 备注 class ONUDeviceResponse(ONUDeviceBase): id: int status: Optional[str] = None distance_m: Optional[int] = None slot_number: Optional[int] = None port_number: Optional[int] = None port_id: Optional[str] = None # 完整端口标识,如 "1/0/2:4" model: Optional[str] = None olt_location: Optional[str] = None # OLT 安装位置 created_at: datetime class Config: from_attributes = True class DeviceListResponse(BaseModel): total: int items: list[ONUDeviceResponse] class RebootResponse(BaseModel): success: bool message: str class OpticalPowerResponse(BaseModel): power_in: Optional[str] = None power_out: Optional[str] = None bind_mac: Optional[str] = None dev_id: Optional[int] = None epon_dev_name: Optional[str] = None olt_if_name: Optional[str] = None onu_if_desc: Optional[str] = None