package regions

// AliyunRegions contains Alibaba Cloud region IDs and their display names
var AliyunRegions = map[string]string{
	"cn-hangzhou":    "China (Hangzhou)",
	"cn-shanghai":    "China (Shanghai)",
	"cn-beijing":     "China (Beijing)",
	"cn-zhangjiakou": "China (Zhangjiakou)",
	"cn-huhehaote":   "China (Hohhot)",
	"cn-shenzhen":    "China (Shenzhen)",
	"cn-chengdu":     "China (Chengdu)",
	"cn-wulanchabu":  "China (Wulanchabu)",
	"ap-southeast-1": "Singapore",
	"ap-southeast-2": "Sydney",
	"ap-southeast-3": "Kuala Lumpur",
	"ap-southeast-5": "Jakarta",
	"ap-northeast-1": "Tokyo",
	"ap-south-1":     "Mumbai",
	"ap-south-2":     "Hyderabad",
	"us-west-1":      "US (Silicon Valley)",
	"us-east-1":      "US (Virginia)",
	"eu-central-1":   "Germany (Frankfurt)",
	"eu-west-1":      "UK (London)",
	"me-east-1":      "UAE (Dubai)",
}

// GetAliyunRegionName returns the display name for an Alibaba Cloud region ID
func GetAliyunRegionName(regionID string) string {
	if name, exists := AliyunRegions[regionID]; exists {
		return name
	}
	return "Unknown Region"
}

// IsValidAliyunRegion checks if an Alibaba Cloud region ID is valid
func IsValidAliyunRegion(regionID string) bool {
	_, exists := AliyunRegions[regionID]
	return exists
}

// GetAliyunRegionIDs returns all Alibaba Cloud region IDs
func GetAliyunRegionIDs() []string {
	regions := make([]string, 0, len(AliyunRegions))
	for regionID := range AliyunRegions {
		regions = append(regions, regionID)
	}
	return regions
}
