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 } nowMS := time.Now().UTC().UnixMilli() for index := range items { items[index].Group = strings.TrimSpace(items[index].Group) items[index].Key = strings.TrimSpace(items[index].Key) items[index].UpdatedAtMS = nowMS if items[index].CreatedAtMS == 0 { items[index].CreatedAtMS = nowMS } } return s.db.Clauses(clause.OnConflict{ Columns: []clause.Column{ {Name: "group"}, {Name: "key"}, }, DoUpdates: clause.AssignmentColumns([]string{"value", "description", "updated_at_ms"}), }).Create(&items).Error }