package api

import (
	"fmt"

	"github.com/tidbcloud/infra-provider/pkg/consts"
)

const (
	infraAlertTempID = "d5025c09-d861-417c-9cfe-797bd97ce0c3"
	tidbAlertTempID  = "95072d4e-5676-4084-bdf1-09aca85881f2"
)

func GetAlertTmplByClusterAndEnv(clusterID, env string) string {
	alertTempID := tidbAlertTempID
	if clusterID == ApplicationIDInfra {
		alertTempID = infraAlertTempID
	}
	if env != "prod" {
		// we use the same alert template for dev and staging
		alertTempID = fmt.Sprintf("%s-dev", alertTempID)
	}
	return alertTempID
}

func GetO11yVendor(provider string) string {
	switch provider {
	case consts.ProviderTypeEKS:
		return "aws"
	case consts.ProviderTypeGKE:
		return "gcp"
	case consts.ProviderTypeAKS:
		return "azure"
	default:
		return "unknown"
	}
}

func GetBizTypeByEnv(env string) string {
	switch env {
	case "dev":
		return "dev-tidbcloud"
	case "staging":
		return "staging-tidbcloud"
	default:
		return BizTypeDedicated
	}
}

func IsPausing(status ResourceStatus) bool {
	switch status {
	case PAUSING, TO_BE_PAUSED, PAUSED:
		return true
	default:
		return false
	}
}

func ClusterReady(status ResourceStatus) bool {
	switch status {
	case ACTIVE, UPDATING:
		return true
	default:
		return false
	}
}
