package labels

import (
	"k8s.io/apimachinery/pkg/labels"
)

func Type(s string) labels.Set {
	return labels.Set{"Type": s}
}

func Feature(ss ...string) labels.Set {
	ls := labels.Set{}
	for _, s := range ss {
		ls["Feat."+s] = "True"
	}

	return ls
}

func For(s string) labels.Set {
	return labels.Set{"For": s}
}

func From(s string) labels.Set {
	return labels.Set{"From": s}
}

func With(ss ...labels.Set) labels.Set {
	x := labels.Set{}

	for _, s := range ss {
		for k, v := range s {
			x[k] = v
		}
	}

	if _, ok := x["For"]; !ok {
		x["For"] = "Core"
	}

	return x
}

var (
	TCluster = Type("Cluster")
	TBackup  = Type("Backup")
	TNetwork = Type("Network")

	FCore          = For("Core")
	FPrivateLink   = For("PrivateLink")
	FCompatibility = For("Compatibility")
)
