package model

// AlarmEvent 告警_事件记录表
type AlarmEvent struct {
	ID                int64  `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
	NeType            string `json:"neType" gorm:"column:ne_type"`                        // 网元类型
	NeId              string `json:"neId" gorm:"column:ne_id"`                            // 网元ID
	AlarmSeq          int64  `json:"alarmSeq" gorm:"column:alarm_seq"`                    // 告警序号 同网元类型连续递增
	AlarmId           string `json:"alarmId" gorm:"column:alarm_id"`                      // 告警ID
	AlarmTitle        string `json:"alarmTitle" gorm:"column:alarm_title"`                // 告警标题
	AlarmCode         int64  `json:"alarmCode" gorm:"column:alarm_code"`                  // 告警状态码
	EventTime         int64  `json:"eventTime" gorm:"column:event_time"`                  // 事件产生时间
	ObjectUid         string `json:"objectUid" gorm:"column:object_uid"`                  // 对象ID
	ObjectName        string `json:"objectName" gorm:"column:object_name"`                // 对象名称
	ObjectType        string `json:"objectType" gorm:"column:object_type"`                // 对象类型
	LocationInfo      string `json:"locationInfo" gorm:"column:location_info"`            // 告警定位信息
	AlarmStatus       string `json:"alarmStatus" gorm:"column:alarm_status"`              // 告警状态
	SpecificProblem   string `json:"specificProblem" gorm:"column:specific_problem"`      // 告警问题原因
	SpecificProblemId string `json:"specificProblemId" gorm:"column:specific_problem_id"` // 告警问题原因ID
	AddInfo           string `json:"addInfo" gorm:"column:add_info"`                      // 告警辅助信息
	ClearType         string `json:"clearType" gorm:"column:clear_type"`                  // 清除状态
	ClearTime         int64  `json:"clearTime" gorm:"column:clear_time"`                  // 清除时间
	ClearUser         string `json:"clearUser" gorm:"column:clear_user"`                  // 清除用户
	Timestamp         int64  `json:"timestamp" gorm:"column:timestamp"`                   // 创建时间
}

// TableName 表名称
func (*AlarmEvent) TableName() string {
	return "alarm_event"
}

// AlarmEventQuery 告警事件数据查询参数结构体
type AlarmEventQuery struct {
	NeType      string `json:"neType" form:"neType"` // 网元类型
	NeID        string `json:"neId" form:"neId"`     // 网元ID
	AlarmCode   string `json:"alarmCode" form:"alarmCode"`
	AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=Clear Active"` // 告警状态
	BeginTime   int64  `json:"beginTime" form:"beginTime"`                                            // 开始时间 查event_time
	EndTime     int64  `json:"endTime" form:"endTime"`
	SortField   string `json:"sortField" form:"sortField" binding:"omitempty,oneof=event_time id"` // 排序字段，填写结果字段
	SortOrder   string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"`      // 排序升降序，asc desc
	PageNum     int64  `json:"pageNum" form:"pageNum" binding:"required"`
	PageSize    int64  `json:"pageSize" form:"pageSize" binding:"required"`
}
