package consts

import "os"

type Environment string
type Partition string

const (
	EnvironmentDev     Environment = "dev"
	EnvironmentStaging Environment = "staging"
	EnvironmentProd    Environment = "prod"

	PartitionGlobal Partition = "global"
	PartitionCN     Partition = "cn"
)

func GetEnv() Environment {
	env := Environment(os.Getenv("APP_ENV"))
	switch env {
	case EnvironmentDev, EnvironmentStaging, EnvironmentProd:
		return env
	default:
		panic("invalid APP_ENV: " + string(env))
	}
}

func GetPartition() Partition {
	partition := Partition(os.Getenv("APP_PARTITION"))
	switch partition {
	case PartitionGlobal, PartitionCN:
		return partition
	default:
		panic("invalid APP_PARTITION: " + string(partition))
	}
}
