package helloworld

const (
	english = "English"
	spanish = "Spanish"
)

var (
	helloPrefixMap  map[string]string
	defaultWorldMap map[string]string
)

func initDefaults() {
	initPrefixMap()
	initWorldMap()
}

func initPrefixMap() {
	helloPrefixMap = make(map[string]string)
	helloPrefixMap[english] = "Hello "
	helloPrefixMap[spanish] = "Hola "
}

func initWorldMap() {
	defaultWorldMap = make(map[string]string)
	defaultWorldMap[english] = "world"
	defaultWorldMap[spanish] = "Mundo"
}

func getDefaultWorldByLanguage(language string) string {
	return defaultWorldMap[language]
}

func getHelloPrefixByLanguage(language string) string {
	return helloPrefixMap[language]
}

func Hello(name, language string) string {
	prefix := getHelloPrefixByLanguage(language)

	if name == "" {
		return prefix + getDefaultWorldByLanguage(language)
	}
	return prefix + name
}

// func main() {
// 	initDefaults()
// 	fmt.Println(Hello("Mary", "English"))
// }