package config

import (
	"github.com/tidbcloud/config-service/sdk/api"
	"io/ioutil"
	"sigs.k8s.io/yaml"
)

var Config Configuration

type Configuration struct {
	// PreConfigKey contains some config does not managed by git-ops
	PreConfigKeys map[api.ComponentName][]string `json:"preConfigKeys" yaml:"preConfigKeys"`
}

func ParseConfig(filename string) error {
	data, err := ioutil.ReadFile(filename)
	if err != nil {
		return err
	}
	if err := yaml.Unmarshal(data, &Config); err != nil {
		return err
	}
	return nil
}

func GetPreConfigKeys(name api.ComponentName) []string {
	keys, ok := Config.PreConfigKeys[name]
	if !ok {
		return []string{}
	}
	return keys
}
