53 lines
2.3 KiB
Python
53 lines
2.3 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
呼叫器设备模型模块
|
|
定义呼叫器设备相关的请求和响应模型
|
|
"""
|
|
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel, Field
|
|
|
|
# 定义按钮模型
|
|
class CallDeviceButtonModel(BaseModel):
|
|
"""呼叫器设备按钮模型"""
|
|
signal_name: str = Field(..., description="信号名称", min_length=1, max_length=100)
|
|
signal_type: int = Field(..., description="信号类型 1:按钮 2:灯")
|
|
signal_length: str = Field(..., description="信号长度")
|
|
register_address: str = Field(..., description="寄存器地址")
|
|
function_code: Optional[str] = Field(..., description="功能码")
|
|
remark: Optional[str] = Field(None, description="备注")
|
|
vwed_task_id: Optional[str] = Field(None, description="按下灯亮绑定的VWED任务ID")
|
|
long_vwed_task_id: Optional[str] = Field(None, description="长按取消后触发VWED任务ID")
|
|
|
|
# 定义呼叫器模型
|
|
class CallDeviceModel(BaseModel):
|
|
"""呼叫器设备模型"""
|
|
protocol: str = Field(..., description="协议类型")
|
|
brand: str = Field("艾智威", description="品牌", min_length=1, max_length=50)
|
|
ip: str = Field(..., description="IP地址")
|
|
port: int = Field(..., description="端口号")
|
|
device_name: str = Field(..., description="设备名称", min_length=1, max_length=100)
|
|
status: int = Field(0, description="状态(0:禁用,1:启用)")
|
|
slave_id: Optional[str] = Field("1", description="从机ID")
|
|
function_code: Optional[str] = Field("4x", description="功能码")
|
|
buttons: List[CallDeviceButtonModel] = Field([], description="呼叫器按钮列表")
|
|
|
|
# 定义删除设备请求模型
|
|
class DeleteDeviceRequest(BaseModel):
|
|
ids: List[str]
|
|
|
|
# 定义导出设备请求模型
|
|
class ExportDevicesRequest(BaseModel):
|
|
"""导出呼叫器设备请求模型"""
|
|
ids: List[str] = Field(..., description="要导出的呼叫器设备ID列表")
|
|
|
|
# 定义导入设备结果模型
|
|
class ImportDeviceResult(BaseModel):
|
|
"""导入呼叫器设备结果模型"""
|
|
success_count: int = Field(0, description="成功导入数量")
|
|
failed_count: int = Field(0, description="导入失败数量")
|
|
failed_devices: List[dict] = Field([], description="导入失败的设备信息")
|
|
imported_devices: List[dict] = Field([], description="成功导入的设备信息")
|