package tables import ( "time" "git.x2erp.com/qdy/go-db/sqldef" ) func init() { sqldef.AddRegistration(func(r *sqldef.Registry) { tb := sqldef.NewTable("sales_transaction", "销售流水表"). ID("transaction_id", 32).Comment("交易流水ID,主键").End(). String("erp_order_id", 64).NotNull().Comment("ERP原始订单号").End(). String("sku_id", 32).NotNull().Comment("商品SKU").End(). String("channel_id", 32).NotNull().Comment("销售渠道").End(). String("tenant_id", 8).NotNull().Comment("租户ID").End(). Int("quantity").NotNull().Default("0").Comment("销售数量").End(). Decimal("original_amount", 12, 2).NotNull().Comment("吊牌价金额").End(). Decimal("actual_amount", 12, 2).NotNull().Comment("实收金额").End(). DateTime("sale_time").NotNull().Comment("销售时间").End(). DateTime("extracted_at").NotNull().Default("CURRENT_TIMESTAMP").Comment("数据抽取时间").End() r.RegisterTable(tb.Build()) }) } // SalesTransaction 销售流水表结构体 type SalesTransaction struct { TransactionID string `gorm:"column:transaction_id;type:varchar(32);primaryKey;not null;comment:交易流水ID,主键"` ErpOrderID string `gorm:"column:erp_order_id;type:varchar(64);not null;comment:ERP原始订单号;index"` SkuID string `gorm:"column:sku_id;type:varchar(32);not null;comment:商品SKU;index:idx_sku_channel_time"` ChannelID string `gorm:"column:channel_id;type:varchar(32);not null;comment:销售渠道;index:idx_sku_channel_time"` Quantity int `gorm:"column:quantity;not null;default:0;comment:销售数量"` OriginalAmount float64 `gorm:"column:original_amount;type:decimal(12,2);not null;comment:吊牌价金额"` ActualAmount float64 `gorm:"column:actual_amount;type:decimal(12,2);not null;comment:实收金额"` SaleTime time.Time `gorm:"column:sale_time;not null;comment:销售时间;index:idx_sku_channel_time"` ExtractedAt time.Time `gorm:"column:extracted_at;not null;default:CURRENT_TIMESTAMP;comment:数据抽取时间"` TenantId string `gorm:"column:tenant_id;type:varchar(8);comment:租户ID"` } func (SalesTransaction) TableName() string { return "sales_transaction" }