package schema import ( "entgo.io/ent" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" ) // OrderMaterialLedger 工单物料台账(WMS 侧) // 维护:物料总需求数量、累计已出库数量、剩余待出库数量 // 强约束:累计出库 ≤ 工单总需求量;等于时领料完结,禁止再出库 type OrderMaterialLedger struct { ent.Schema } func (OrderMaterialLedger) Fields() []ent.Field { return []ent.Field{ field.String("order_no").Comment("工单号"), field.String("material_code").Comment("物料编码"), field.String("material_name").Optional().Comment("物料名称(冗余)"), field.Int("total_qty").Default(0).Comment("物料总需求数量"), field.Int("out_qty").Default(0).Comment("累计已出库数量"), field.String("status").Default("进行中").Comment("进行中/领料完结"), field.String("remark").Optional().Comment("备注"), field.Int64("created_at").DefaultFunc(nowUnix), field.Int64("updated_at").DefaultFunc(nowUnix), } } func (OrderMaterialLedger) Indexes() []ent.Index { return []ent.Index{ index.Fields("order_no"), index.Fields("material_code"), } }