package integration

import (
	"fmt"
	"strings"

	"github.com/tidbcloud/metrics-integration/global/internal/domain/entity"
)

func normalizeIntegrationCloudProviderType(provider string) (entity.IntegrationCloudProviderType, error) {
	switch strings.ToLower(strings.TrimSpace(provider)) {
	case "aws", "amazon", "amazonwebservices":
		return entity.IntegrationCloudProviderTypeAWS, nil
	case "gcp", "gke", "google", "googlecloud":
		return entity.IntegrationCloudProviderTypeGCP, nil
	case "azure":
		return entity.IntegrationCloudProviderTypeAzure, nil
	case "alicloud", "aliyun", "alibaba", "alibabacloud":
		return entity.IntegrationCloudProviderTypeAlibabaCloud, nil
	case "local", "incluster":
		return entity.IntegrationCloudProviderTypeLocal, nil
	default:
		return "", fmt.Errorf("unsupported cloud provider %q", provider)
	}
}
