package entities import ( "time" "github.com/google/uuid" "github.com/shopspring/decimal" "gorm.io/gorm" ) // ProductUIComponent 产品UI组件关联实体 type ProductUIComponent struct { ID string `gorm:"primaryKey;type:varchar(36)" comment:"关联ID"` ProductID string `gorm:"type:varchar(36);not null;index" comment:"产品ID"` UIComponentID string `gorm:"type:varchar(36);not null;index" comment:"UI组件ID"` Price decimal.Decimal `gorm:"type:decimal(10,2);not null;default:0" comment:"销售价格"` IsEnabled bool `gorm:"default:true" comment:"是否启用销售"` CreatedAt time.Time `gorm:"autoCreateTime" comment:"创建时间"` UpdatedAt time.Time `gorm:"autoUpdateTime" comment:"更新时间"` DeletedAt gorm.DeletedAt `gorm:"index" comment:"软删除时间"` // 关联关系 Product *Product `gorm:"foreignKey:ProductID" comment:"产品"` UIComponent *UIComponent `gorm:"foreignKey:UIComponentID" comment:"UI组件"` } func (ProductUIComponent) TableName() string { return "product_ui_components" } func (p *ProductUIComponent) BeforeCreate(tx *gorm.DB) error { if p.ID == "" { p.ID = uuid.New().String() } return nil }