package util

import "strings"

// issueTypeAliases maps shorthand type names to canonical types
var issueTypeAliases = map[string]string{
	"mr":   "merge-request",
	"feat": "feature",
	"mol":  "molecule",
}

// NormalizeIssueType expands type aliases to their canonical forms.
// For example: "mr" -> "merge-request", "feat" -> "feature", "mol" -> "molecule"
// Returns the input unchanged if it's not an alias.
func NormalizeIssueType(t string) string {
	if canonical, ok := issueTypeAliases[strings.ToLower(t)]; ok {
		return canonical
	}
	return t
}

// NormalizeLabels trims whitespace, removes empty strings, and deduplicates labels
// while preserving order.
func NormalizeLabels(ss []string) []string {
	seen := make(map[string]struct{})
	out := make([]string, 0, len(ss))
	for _, s := range ss {
		s = strings.TrimSpace(s)
		if s == "" {
			continue
		}
		if _, ok := seen[s]; ok {
			continue
		}
		seen[s] = struct{}{}
		out = append(out, s)
	}
	return out
}
