Files
bj_power/bj_power_mes/schema/equipment_slot.go
T

56 lines
1.7 KiB
Go

package schema
import (
"bj_power_mes/constants"
"entgo.io/ent"
"entgo.io/ent/dialect/entsql"
"entgo.io/ent/schema"
"entgo.io/ent/schema/edge"
"entgo.io/ent/schema/field"
"entgo.io/ent/schema/index"
)
// EquipmentSlot 设备槽ä½ï¼Œæ¯å°è®¾å¤‡ä¸‹çš„具体工ä½?
type EquipmentSlot struct {
ent.Schema
}
func (EquipmentSlot) Annotations() []schema.Annotation {
return []schema.Annotation{
entsql.Annotation{
Table: "equipment_slot",
Options: "COMMENT='设备槽ä½è¡¨ï¼Œè®°å½•æ¯å°è®¾å¤‡ä¸‹å„æ§½ä½çš„状æ€ã€å ç”¨çš„工件åŠFIFO排åºä¿¡æ¯'",
},
entsql.WithComments(true),
}
}
func (EquipmentSlot) Fields() []ent.Field {
return []ent.Field{
field.Int("id").Positive().Comment("主键ID"),
field.Int("equipmentId").Optional().Nillable().Comment("所属设备ID"),
field.Int("slotNo").Comment("æ§½ä½åºå·ï¼Œä»Ž1开始递增"),
field.Enum("status").
GoType(constants.SlotStatus("")).
Default(string(constants.SlotStatus_Empty)).
Comment("æ§½ä½çжæ€ï¼šEmpty/Occupiedæ¬è¿ä¸?Processing加工ä¸?Completed"),
field.Int("currentJobId").Optional().Nillable().Comment("当å‰å ç”¨çš„工件ID"),
field.Time("occupiedAt").Optional().Nillable().Comment( ç”¨æ—¶é—´ï¼Œç”¨äºŽFIFO排åºï¼Œå…ˆå ç”¨çš„优先出é˜?),
}
}
func (EquipmentSlot) Edges() []ent.Edge {
return []ent.Edge{
edge.From("equipment", Equipment.Type).Ref("slots").Field("equipmentId").Unique().Comment("所属设�),
edge.To("currentJob", Job.Type).Field("currentJobId").Unique().Comment("当å‰å ç”¨çš„å·¥ä»?),
}
}
func (EquipmentSlot) Indexes() []ent.Index {
return []ent.Index{
index.Fields("equipmentId", "slotNo").Unique(),
index.Fields("currentJobId"),
}
}