package repository import ( "carrotskin/internal/model" "carrotskin/pkg/database" "errors" "gorm.io/gorm" ) // GetSystemConfigByKey 根据键获取配置 func GetSystemConfigByKey(key string) (*model.SystemConfig, error) { db := database.MustGetDB() var config model.SystemConfig err := db.Where("key = ?", key).First(&config).Error if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, nil } return nil, err } return &config, nil } // GetPublicSystemConfigs 获取所有公开配置 func GetPublicSystemConfigs() ([]model.SystemConfig, error) { db := database.MustGetDB() var configs []model.SystemConfig err := db.Where("is_public = ?", true).Find(&configs).Error if err != nil { return nil, err } return configs, nil } // GetAllSystemConfigs 获取所有配置(管理员用) func GetAllSystemConfigs() ([]model.SystemConfig, error) { db := database.MustGetDB() var configs []model.SystemConfig err := db.Find(&configs).Error if err != nil { return nil, err } return configs, nil } // UpdateSystemConfig 更新配置 func UpdateSystemConfig(config *model.SystemConfig) error { db := database.MustGetDB() return db.Save(config).Error } // UpdateSystemConfigValue 更新配置值 func UpdateSystemConfigValue(key, value string) error { db := database.MustGetDB() return db.Model(&model.SystemConfig{}).Where("key = ?", key).Update("value", value).Error }