from dataclasses import field from marshmallow_dataclass import dataclass from marshmallow import validates_schema, ValidationError from iti.applications.common.utils.schema import BaseSchema, Pagination from typing import ClassVar, Optional from apiflask import fields @dataclass(base_schema=BaseSchema) class EndpointQuery(Pagination): """ 采集端信息查询请求 """ keyword: Optional[str] = field( default=None, metadata={ "required": False, "metadata": { "description": "关键字 [采集端名称|采集端编号|采集端IP] 模糊查询" }, }, ) device_id: str = field( default=None, metadata={ "required": False, "metadata": {"example": "ase1f2", "description": "设备ID"}, }, ) status: int = field( default=None, metadata={ "required": False, "metadata": {"example": 0, "description": "状态"}, }, ) Schema: ClassVar[BaseSchema] = BaseSchema # For the type check class EndpointAddRequest(BaseSchema): """ 采集端新增信息 """ device_id = fields.String( required=False, metadata={"example": "设备ID", "description": "设备ID"}, load_default=None, ) endpoint_name = fields.String( required=False, metadata={"example": "采集端名称", "descriptrion": "采集端名称"}, load_default=None, ) endpoint_number = fields.String( required=False, metadata={"example": "采集端编号", "description": "采集端编号"}, load_default=None, ) description = fields.String( required=False, metadata={"example": "采集端描述", "description": "采集端描述"}, load_default=None, ) ip = fields.String( required=False, metadata={"example": "采集端IP", "description": "采集端IP"}, load_default=None, ) port = fields.String( required=False, metadata={"example": "采集端端口", "description": "采集端端口"}, load_default=None, ) brand_name = fields.String( required=False, metadata={"example": "品牌名称", "description": "品牌名称"}, load_default=None, ) specification_model = fields.String( required=False, metadata={"example": "规格型号", "description": "规格型号"}, load_default=None, ) class EndpointUpdateRequest(BaseSchema): """ 更新采集端信息 """ device_id = fields.String( required=False, metadata={"example": "设备ID", "description": "设备ID"}, load_default=None, ) endpoint_name = fields.String( required=False, metadata={"example": "采集端名称", "descriptrion": "采集端名称"}, load_default=None, ) endpoint_number = fields.String( required=False, metadata={"example": "采集端编号", "description": "采集端编号"}, load_default=None, ) description = fields.String( required=False, metadata={"example": "采集端描述", "description": "采集端描述"}, load_default=None, ) ip = fields.String( required=False, metadata={"example": "采集端IP", "description": "采集端IP"}, load_default=None, ) port = fields.String( required=False, metadata={"example": "采集端端口", "description": "采集端端口"}, load_default=None, ) brand_name = fields.String( required=False, metadata={"example": "品牌名称", "description": "品牌名称"}, load_default=None, ) specification_model = fields.String( required=False, metadata={"example": "规格型号", "description": "规格型号"}, load_default=None, ) status = fields.Integer( required=False, metadata={"example": 1, "description": "状态(0-已停用,1-生产中,2-维修中)"}, load_default=None, )