package versioning

import "strings"

const (
	unknownGitCommit = "unknown"
	unknownVersion   = "unknown"
)

var (
	// Version is the AgentTeam server version shown in runtime surfaces.
	// Build tooling may override it with -ldflags when packaging a release.
	Version = unknownVersion

	// GitCommit is the source commit used for this server build.
	// Build tooling overrides it with -ldflags for local/dev/prod binaries.
	GitCommit = unknownGitCommit

	// BuildTime is the UTC time when the server binary was built.
	// Build tooling overrides it with -ldflags when packaging a release.
	BuildTime string
)

func ServerVersion() string {
	version := strings.TrimSpace(Version)
	if version == "" || strings.EqualFold(version, unknownVersion) {
		return ""
	}
	return version
}

func ServerGitCommit() string {
	if commit := strings.TrimSpace(GitCommit); commit != "" {
		return commit
	}
	return unknownGitCommit
}

func ServerBuildTime() string {
	return strings.TrimSpace(BuildTime)
}
