package schema import ( "time" "bj_power_mes/constants" "entgo.io/ent" "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" ) // Alarm 报警记录,存储系统运行过程中产生的各级别报警信息 type Alarm struct { ent.Schema } func (Alarm) Annotations() []schema.Annotation { return []schema.Annotation{ entsql.Annotation{ Table: "alarm", Options: "COMMENT='报警记录表,存储设备运行过程中产生的各级别报警信息及处理状?", }, entsql.WithComments(true), } } func (Alarm) Fields() []ent.Field { return []ent.Field{ field.Int("id").Positive().Comment("主键ID"), field.String("alarmCode").MaxLen(20).Comment("报警编码,唯一标识一类报?), field.String("alarmMessage").Default("").Comment("报警描述信息,人可读的报警内?), field.Enum("level"). GoType(constants.AlarmLevel("")). Default(string(constants.AlarmLevel_INFO)). Comment("报警等级:INFO/WARN/ERROR/CRITICAL"), field.Int("equipmentId").Optional().Nillable().Comment("关联设备ID,触发报警的设备"), field.Int("jobId").Optional().Nillable().Comment("关联工件ID,触发报警时正在加工的工?), field.String("source").Default("").Comment("报警来源模块,如PLC、传感器、调度系统等"), field.Bool("resolved").Default(false).Comment("是否已处理,true表示报警已被确认或消?), field.Time("resolvedAt").Optional().Nillable().Comment("处理时间,报警被确认或消除的时刻"), field.Time("createdAt").Default(time.Now).Immutable().Comment("创建时间,报警产生的时刻"), } } func (Alarm) Indexes() []ent.Index { return []ent.Index{ index.Fields("level"), index.Fields("equipmentId"), index.Fields("resolved"), index.Fields("createdAt"), } }