package tables import ( "time" "git.x2erp.com/qdy/go-db/sqldef" ) func init() { sqldef.AddRegistration(func(r *sqldef.Registry) { tb := sqldef.NewTable("fact_campaign_plan", "波段作战计划表"). ID("plan_id", 32).Comment("计划ID,主键").End(). String("season_id", 32).NotNull().Comment("季节波段").End(). String("group_id", 32).NotNull().Comment("店铺组").End(). String("campaign_tag", 64).NotNull().Comment("波段标签(如:秋一波)").End(). Int("campaign_seq").NotNull().Comment("波段序号").End(). DateTime("plan_start_date").NotNull().Comment("该组计划上市日期").End(). DateTime("plan_end_date").NotNull().Comment("该组计划下市日期").End(). Decimal("sales_target", 12, 2).Comment("销售目标金额").End(). Int("sales_target_qty").Comment("销售目标件数").End(). String("tenant_id", 8).NotNull().Comment("租户ID").End(). Text("planned_skus").Comment("计划主推SKU列表(JSON)").End(). String("creator", 32).NotNull().Comment("创建人").End(). DateTime("created_at").NotNull().Default("CURRENT_TIMESTAMP").Comment("创建时间").End(). DateTime("updated_at").NotNull().Default("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").Comment("更新时间").End() r.RegisterTable(tb.Build()) }) } type FactCampaignPlan struct { PlanID string `gorm:"column:plan_id;type:varchar(32);primaryKey;not null;comment:计划ID,主键"` SeasonID string `gorm:"column:season_id;type:varchar(32);not null;comment:季节波段;index:idx_season_group"` GroupID string `gorm:"column:group_id;type:varchar(32);not null;comment:店铺组;index:idx_season_group"` CampaignTag string `gorm:"column:campaign_tag;type:varchar(64);not null;comment:波段标签(如:秋一波)"` CampaignSeq int `gorm:"column:campaign_seq;not null;comment:波段序号"` PlanStartDate time.Time `gorm:"column:plan_start_date;not null;comment:该组计划上市日期"` PlanEndDate time.Time `gorm:"column:plan_end_date;not null;comment:该组计划下市日期"` SalesTarget float64 `gorm:"column:sales_target;type:decimal(12,2);comment:销售目标金额"` SalesTargetQty int `gorm:"column:sales_target_qty;comment:销售目标件数"` PlannedSkus string `gorm:"column:planned_skus;type:text;comment:计划主推SKU列表(JSON)"` Creator string `gorm:"column:creator;type:varchar(32);not null;comment:创建人"` CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP;comment:创建时间"` UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;comment:更新时间"` TenantId string `gorm:"column:tenant_id;type:varchar(8);comment:租户ID"` } func (FactCampaignPlan) TableName() string { return "fact_campaign_plan" }