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 AlertPushQuery(Pagination): """ 告警推送信息查询请求 """ keyword: Optional[str] = field( default=None, metadata={ "required": False, "metadata": { "description": "关键字 [消息对象名称] 模糊查询" }, }, ) status: int = field( default=None, metadata={ "required": False, "metadata": {"example": 0, "description": "状态"}, }, ) Schema: ClassVar[BaseSchema] = BaseSchema class AlertPushAddRequest(BaseSchema): """ 告警推送信息添加请求 """ target_name = fields.String( required=True, metadata={ "example": "ERP", "description": "告警对象名称", }, ) push_url = fields.String( required=True, metadata={ "example": "https://www.baidu.com", "description": "告警推送URL", }, ) alert_level = fields.List( fields.Integer(), required=False, metadata={"example": 1, "description": "告警级别"}, load_default=1, ) status = fields.Integer( required=False, metadata={ "example": 1, "description": "状态 0-禁用,1-启用", }, load_default=1, ) class AlertPushUpdateRequest(BaseSchema): """ 告警推送信息更新请求 """ target_name = fields.String( required=True, metadata={ "example": "ERP", "description": "告警对象名称", }, ) push_url = fields.String( required=True, metadata={ "example": "https://www.baidu.com", "description": "告警推送URL", }, ) alert_level = fields.List( fields.Integer(), required=False, metadata={"example": 1, "description": "告警级别"}, load_default=1, ) status = fields.Integer( required=False, metadata={"example": 1, "description": "状态 0-禁用,1-启用"}, load_default=1, )