package models import ( "errors" "github.com/jinzhu/gorm" ) // AlarmRule 报警规则 // 为某个产品增加一个告警规则,平台可以根据设备的实时数据产生一个告警信息,并推送给用户 // 用来监控设备的状态异常等 type AlarmRule struct { gorm.Model RecordId string `gorm:"primary_key;column:record_id;size:32;index"` AlertName string `gorm:"size:30;not null"` //规则名称 ProtocalID string //所属数据点ID ProtocalName string //协议名称 AlertCondition int //对应触发条件的属性编号 // |1|小于| // |2|等于| // |3|大于| // |4|小于等于| // |5|大于等于| // |6|不等于| AlertValue int //触发对比数值 AlertContent string `gorm:"size:500;not null"` // 告警内容 AlertType int // 告警类型:1:设备异常 2:设备警告 NoticeType int // 通知类型:1:通知型
2:告警型 NoticeWay int //通知方式 1:短信通知
2:极光推送
3:微信通知
ProductID string `gorm:"column:product_id;size:32;index"` //关联的产品ID VendorID string `gorm:"column:vendor_id;size:32;index"` //关联厂商ID StartIndex int //字符串或字节数组的开始位置 EndIndex int //字符串或字节数组的结束位置 Status int //状态,1正常,0禁用 } // Validate 验证 func (a *AlarmRule) Validate() error { if a.AlertName == "" || a.AlertCondition == 0 || a.AlertValue == 0 || a.AlertContent == "" || a.AlertType == 0 || a.NoticeType == 0 || a.ProductID == "" { return errors.New("非法参数") } return nil }