package entities import ( "time" "github.com/google/uuid" "gorm.io/gorm" ) // ProductParameter 产品参数配置实体 type ProductParameter struct { ID string `gorm:"primaryKey;type:varchar(36)" comment:"参数配置ID"` ProductID string `gorm:"type:varchar(36);not null;index" comment:"产品ID"` Name string `gorm:"type:varchar(100);not null" comment:"参数名称"` Field string `gorm:"type:varchar(50);not null" comment:"参数字段名"` Type string `gorm:"type:varchar(20);not null;default:'string'" comment:"参数类型"` Required bool `gorm:"default:true" comment:"是否必填"` Description string `gorm:"type:text" comment:"参数描述"` Example string `gorm:"type:varchar(200)" comment:"参数示例"` Validation string `gorm:"type:text" comment:"验证规则"` SortOrder int `gorm:"default:0" comment:"排序"` // 关联关系 Product *Product `gorm:"foreignKey:ProductID" comment:"产品"` CreatedAt time.Time `gorm:"autoCreateTime" comment:"创建时间"` UpdatedAt time.Time `gorm:"autoUpdateTime" comment:"更新时间"` DeletedAt gorm.DeletedAt `gorm:"index" comment:"软删除时间"` } // BeforeCreate GORM钩子:创建前自动生成UUID func (pp *ProductParameter) BeforeCreate(tx *gorm.DB) error { if pp.ID == "" { pp.ID = uuid.New().String() } return nil } // IsValid 检查参数配置是否有效 func (pp *ProductParameter) IsValid() bool { return pp.DeletedAt.Time.IsZero() } // GetValidationRules 获取验证规则 func (pp *ProductParameter) GetValidationRules() map[string]interface{} { if pp.Validation == "" { return nil } // 这里可以解析JSON格式的验证规则 // 暂时返回空map,后续可以扩展 return make(map[string]interface{}) }