package v1

import (
	"fmt"

	"k8s.io/apimachinery/pkg/types"
)

const (
	ProviderTypeAWS           = "aws"
	ProviderTypeGCP           = "gcp"
	ProviderTypeEKS           = "eks"
	ProviderTypeGKE           = "gke"
	ProviderTypeAKS           = "aks"
	ProviderTypeAWSFreeTier   = "aws-free-tier"
	ProviderTypeAWSSharedTier = "aws-shared-tier"
	UnkownProvider            = "unknown"
)

func (i *Import) GetClusterRef() types.NamespacedName {
	return types.NamespacedName{
		Namespace: i.Namespace,
		Name:      i.Spec.ClusterName,
	}
}

func (i *Import) ClusterScopeName() string {
	return fmt.Sprintf("%s-%s", i.Spec.ClusterName, i.ObjectMeta.Name)
}

func (i *Import) GetProviderType() string {
	return i.Labels[ProviderTypeLabel]
}

func ConvtProviderType(providerType string) string {
	switch providerType {
	// When providerType is 'aws-free-tier' or 'aws-shared-tier' or 'eks', convert it to 'aws'
	case ProviderTypeAWSFreeTier, ProviderTypeAWSSharedTier, ProviderTypeEKS:
		return ProviderTypeAWS
	// When providerType is 'gcp' or 'gke', convert it to 'gcp'
	case ProviderTypeGCP, ProviderTypeGKE:
		return ProviderTypeGCP
	}
	return providerType
}
