package schema import ( "entgo.io/ent" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" ) // PackageBox 包装箱 ↔ SN 关联(装箱管理) // 将一个或多个精密件 SN 绑定到一个箱号,便于整箱出入库与追溯。 // sn_list 以字符串存多个 SN(逗号分隔 / JSON),不强制外键关联 inventory, // 因为装箱是业务封装动作,箱内 SN 仍各自在 inventory 表中独立流转。 type PackageBox struct { ent.Schema } func (PackageBox) Fields() []ent.Field { return []ent.Field{ field.String("box_no").Unique().Comment("箱号"), // 关联 SN 列表(逗号分隔)或 JSON field.String("sn_list").Optional().Comment("箱内 SN 列表"), field.String("material_code").Optional().Comment("物料编码"), field.Int("quantity").Default(0).Comment("箱内数量"), field.String("operator").Optional().Comment("包装人"), field.String("contract_no").Optional().Comment("合同号(选填)"), field.String("remark").Optional().Comment("备注"), field.Int64("created_at").DefaultFunc(nowUnix), field.Int64("updated_at").DefaultFunc(nowUnix).Optional().Comment("更新时间"), } } func (PackageBox) Indexes() []ent.Index { return []ent.Index{ index.Fields("material_code"), index.Fields("contract_no"), index.Fields("operator"), } }