package repository import ( "strings" "time" "hyapp-admin-server/internal/model" "gorm.io/gorm/clause" ) func (s *Store) ListAppConfigs(group string) ([]model.AppConfig, error) { var items []model.AppConfig err := s.db.Where("`group` = ?", strings.TrimSpace(group)).Order("`key` ASC").Find(&items).Error return items, err } func (s *Store) UpsertAppConfigs(items []model.AppConfig) error { if len(items) == 0 { return nil } now := time.Now() for index := range items { items[index].Group = strings.TrimSpace(items[index].Group) items[index].Key = strings.TrimSpace(items[index].Key) items[index].UpdatedAt = now if items[index].CreatedAt.IsZero() { items[index].CreatedAt = now } } return s.db.Clauses(clause.OnConflict{ Columns: []clause.Column{ {Name: "group"}, {Name: "key"}, }, DoUpdates: clause.AssignmentColumns([]string{"value", "description", "updated_at"}), }).Create(&items).Error }