'''

告警数据模型

'''

from web_apps import db

from models import BaseModel





class AlertStrategy(BaseModel):

    '''

    告警策略表

    '''

    __tablename__ = 'alert_strategy'

    id = db.Column(db.String(36), primary_key=True, nullable=False, default='', comment='主键')

    name = db.Column(db.String(200), nullable=True, default='', comment='策略名称')

    template_code = db.Column(db.String(100), nullable=True, default='', comment='策略模版')

    trigger_conf = db.Column(db.Text, nullable=True, default='{}', comment='触发条件')

    forward_conf = db.Column(db.Text, nullable=True, default='{}', comment='转发条件')

    status = db.Column(db.SmallInteger, nullable=True, default=1, comment='状态')





class Alert(BaseModel):

    '''

    告警表

    '''

    __tablename__ = 'alert'

    id = db.Column(db.String(36), primary_key=True, nullable=False, default='', comment='id')

    strategy_id = db.Column(db.String(36), nullable=True, default='', comment='告警策略id')

    title = db.Column(db.String(500), nullable=True, default='', comment='告警标题')

    content = db.Column(db.Text, nullable=True, default='', comment='告警内容')

    level = db.Column(db.Integer, nullable=True, default=0, comment='告警等级')

    status = db.Column(db.SmallInteger, nullable=True, default=0, comment='告警状态')

    rule_id = db.Column(db.Text, nullable=True, default='', comment='规则编码')

    rule_name = db.Column(db.Text, nullable=True, default='', comment='规则名称')

    biz = db.Column(db.Text, nullable=True, default='', comment='告警业务')

    source = db.Column(db.Text, nullable=True, default='', comment='告警对象')

    tags = db.Column(db.Text, nullable=True, default='', comment='告警标签')

    metric = db.Column(db.Text, nullable=True, default='', comment='告警指标')

    recover_time = db.Column(db.TIMESTAMP, nullable=True, comment='恢复时间')

    ext_params = db.Column(db.Text, nullable=True, default='{}', comment='额外参数')





if __name__ == '__main__':

    db.create_all()

    db.session.commit()

    db.session.flush()