You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.5 KiB
Python

from iti.applications.extensions import db
from iti.applications.common.crud import TimeModelMixin
from iti.applications.common.utils import BaseSchema
from apiflask.fields import String, Integer, DateTime, Nested
class IotAlertRule(db.Model, TimeModelMixin):
"""
告警规则表
"""
__tablename__ = "iot_alert_rule"
id = db.Column(
db.Integer,
primary_key=True,
autoincrement=True,
comment="标识",
)
rule_name = db.Column(db.String(255), nullable=False, comment="告警规则名称")
node_id = db.Column(db.Integer, nullable=False, comment="采集节点ID")
trigger_count = db.Column(db.Integer, nullable=False, comment="阈值触发次数,超过次数后告警")
alert_rule = db.Column(db.String(255), nullable=False, comment="告警触发表达式")
alert_text = db.Column(db.String(2048), nullable=False, comment="告警文本")
alert_level = db.Column(db.Integer, nullable=False, comment="告警级别 0-预警,1-一般,2-紧急,3-严重")
status = db.Column(db.Integer, nullable=False, default=1, comment="状态 1-启用,0-禁用")
class IotAlertRuleSchema(BaseSchema):
"""
告警规则表响应结构
"""
class Meta:
name = "IotAlertRule"
id = Integer()
rule_name = String()
node_id = Integer()
trigger_count = Integer()
alert_rule = String()
alert_text = String()
alert_level = Integer()
status = Integer()
created_at = DateTime(format="%Y-%m-%d %H:%M:%S")
updated_at = DateTime(format="%Y-%m-%d %H:%M:%S")