package schema import ( "time" "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" ) // PartNo 零件号(高压清洗机按零件号分9组程序) type PartNo struct { ent.Schema } func (PartNo) Annotations() []schema.Annotation { return []schema.Annotation{ entsql.Annotation{Table: "part_no"}, } } func (PartNo) Fields() []ent.Field { return []ent.Field{ field.Int("id").Positive(), field.String("code").MaxLen(20).Unique().Comment("零件号(如 B02858),全局唯一"), field.Int("productTypeId").Comment("所属毛坯号(关联 product_type.id),与其他设备识别工件类型的ID一致"), field.Int("washerGroupNo").Comment("高压清洗机组号(1~9),即写入 FANUC 宏变量 #666/#888 的值"), field.String("remark").Default("").Comment("备注"), field.Time("createdAt").Default(time.Now).Immutable().Comment("创建时间"), } } func (PartNo) Edges() []ent.Edge { return []ent.Edge{ edge.From("productType", ProductType.Type).Ref("partNos").Field("productTypeId").Unique().Required(), edge.To("workOrderParts", WorkOrderPart.Type).Comment("工单零件号关联"), } } func (PartNo) Indexes() []ent.Index { return []ent.Index{ index.Fields("productTypeId"), } }