from typing import Any, Dict, List from fastapi import APIRouter, Depends, Query from app.core.response import success_response from app.core.security import verify_api_token from app.schemas.platform import AiAlarmSettingIn, ChannelConfigIn, DeviceConfigIn, DevicePasswordUpdateIn, LineAlarmSettingIn, NetConfigItem, SystemConfigIn, UartConfigItem from app.services.platform_service import platform_service router = APIRouter(prefix="/config", tags=["config"]) @router.get("/device", dependencies=[Depends(verify_api_token)]) def get_device_config() -> Dict[str, Any]: return success_response(platform_service.get_device_config(), msg="获取设备配置成功") @router.post("/device", dependencies=[Depends(verify_api_token)]) def save_device_config(payload: DeviceConfigIn) -> Dict[str, Any]: return success_response(platform_service.save_device_config(payload)) @router.post("/device/password", dependencies=[Depends(verify_api_token)]) def save_device_password(payload: DevicePasswordUpdateIn) -> Dict[str, Any]: return success_response(platform_service.save_device_password(payload), msg="保存设备密码成功") @router.get("/device/net", dependencies=[Depends(verify_api_token)]) def get_net_config(nic: str = Query(..., min_length=1)) -> Dict[str, Any]: return success_response(platform_service.get_net_config(nic=nic), msg="获取网卡配置成功") @router.post("/device/net", dependencies=[Depends(verify_api_token)]) def save_net_config(payload: NetConfigItem) -> Dict[str, Any]: return success_response(platform_service.save_net_config(payload), msg="保存网卡配置成功") @router.get("/device/uart", dependencies=[Depends(verify_api_token)]) def get_uart_config(port: str = Query(..., min_length=1)) -> Dict[str, Any]: return success_response(platform_service.get_uart_config(port=port), msg="获取串口配置成功") @router.post("/device/uart", dependencies=[Depends(verify_api_token)]) def save_uart_config(payload: UartConfigItem) -> Dict[str, Any]: return success_response(platform_service.save_uart_config(payload), msg="保存串口配置成功") @router.get("/channel", dependencies=[Depends(verify_api_token)]) def get_channel_config() -> Dict[str, Any]: return success_response(platform_service.get_channel_config(), msg="获取通道配置成功") @router.post("/channel", dependencies=[Depends(verify_api_token)]) def save_channel_config(payload: ChannelConfigIn) -> Dict[str, Any]: return success_response(platform_service.save_channel_config(payload)) @router.get("/line_alarm_setting", dependencies=[Depends(verify_api_token)]) def get_line_alarm_setting(line_no: int = Query(default=1, ge=1)) -> Dict[str, Any]: return success_response(platform_service.get_line_alarm_setting(line_no=line_no), msg="获取线路报警设置成功") @router.post("/line_alarm_setting", dependencies=[Depends(verify_api_token)]) def save_line_alarm_setting(payload: LineAlarmSettingIn) -> Dict[str, Any]: return success_response(platform_service.save_line_alarm_setting(payload)) @router.get("/ai_alarm_setting", dependencies=[Depends(verify_api_token)]) def get_ai_alarm_setting() -> Dict[str, Any]: return success_response(platform_service.get_ai_alarm_setting(), msg="获取AI报警设置成功") @router.post("/ai_alarm_setting", dependencies=[Depends(verify_api_token)]) def save_ai_alarm_setting(payload: List[AiAlarmSettingIn]) -> Dict[str, Any]: return success_response(platform_service.save_ai_alarm_setting(payload)) @router.get("/system", dependencies=[Depends(verify_api_token)]) def get_system_config() -> Dict[str, Any]: return success_response(platform_service.get_system_config(), msg="获取系统设置成功") @router.post("/system", dependencies=[Depends(verify_api_token)]) def save_system_config(payload: SystemConfigIn) -> Dict[str, Any]: return success_response(platform_service.save_system_config(payload))