package regions

// AzureRegions contains Azure region IDs and their display names
var AzureRegions = map[string]string{
	"eastus":             "East US",
	"eastus2":            "East US 2",
	"westus":             "West US",
	"westus2":            "West US 2",
	"westus3":            "West US 3",
	"centralus":          "Central US",
	"northcentralus":     "North Central US",
	"southcentralus":     "South Central US",
	"eastasia":           "East Asia",
	"southeastasia":      "Southeast Asia",
	"japaneast":          "Japan East",
	"japanwest":          "Japan West",
	"canadacentral":      "Canada Central",
	"canadaeast":         "Canada East",
	"uksouth":            "UK South",
	"ukwest":             "UK West",
	"francecentral":      "France Central",
	"francesouth":        "France South",
	"germanywestcentral": "Germany West Central",
	"germanynorth":       "Germany North",
	"norwayeast":         "Norway East",
	"norwaywest":         "Norway West",
	"switzerlandnorth":   "Switzerland North",
	"switzerlandwest":    "Switzerland West",
	"brazilsouth":        "Brazil South",
	"brazilsoutheast":    "Brazil Southeast",
	"qatarcentral":       "Qatar Central",
	"uaenorth":           "UAE North",
	"southafricanorth":   "South Africa North",
	"southafricawest":    "South Africa West",
	"australiaeast":      "Australia East",
	"australiasoutheast": "Australia Southeast",
	"australiacentral":   "Australia Central",
	"australiacentral2":  "Australia Central 2",
	"chinanorth":         "China North",
	"chinanorth2":        "China North 2",
	"chinanorth3":        "China North 3",
	"chinaeast":          "China East",
	"chinaeast2":         "China East 2",
	"chinaeast3":         "China East 3",
	"indiacentral":       "India Central",
	"indiaeast":          "India East",
	"indiawest":          "India West",
	"jioindiacentral":    "Jio India Central",
	"jioindiaeast":       "Jio India East",
	"koreacentral":       "Korea Central",
	"koreasouth":         "Korea South",
	"swedencentral":      "Sweden Central",
	"swedensouth":        "Sweden South",
	"polandcentral":      "Poland Central",
	"israelcentral":      "Israel Central",
	"italynorth":         "Italy North",
	"spaincentral":       "Spain Central",
	"greekcentral":       "Greece Central",
}

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

// IsValidAzureRegion checks if an Azure region ID is valid
func IsValidAzureRegion(regionID string) bool {
	_, exists := AzureRegions[regionID]
	return exists
}

// GetAzureRegionIDs returns all Azure region IDs
func GetAzureRegionIDs() []string {
	regions := make([]string, 0, len(AzureRegions))
	for regionID := range AzureRegions {
		regions = append(regions, regionID)
	}
	return regions
}
