package server

import (
	"strings"

	"github.com/blang/semver/v4"
)

const minTiKVColumnarImageVersion = "26.3.5-nextgen"

var minTiKVColumnarVersion = semver.MustParse(minTiKVColumnarImageVersion)

// supportsColumnarByTiKVImage reports whether the release identified by the
// effective TiKV image tag supports the new Columnar topology.
func supportsColumnarByTiKVImage(imageTag string) bool {
	normalizedTag := strings.TrimSpace(imageTag)
	if strings.HasPrefix(normalizedTag, "V") {
		normalizedTag = "v" + normalizedTag[1:]
	}

	version, err := semver.ParseTolerant(normalizedTag)
	if err != nil {
		return false
	}

	return version.GTE(minTiKVColumnarVersion)
}
