package utils

import "strings"

var statusAliases = map[string]map[string]string{
	"sr": {
		"completed": "submitted",
		"verified":  "approved",
	},
	"serviceparts": {
		"completed": "submitted",
		"verified":  "approved",
	},
	"servicekalibrasi": {
		"completed": "submitted",
		"verified":  "approved",
	},
}

var tabAliases = map[string]map[string]string{
	"sr": {
		"verified": "completed",
	},
	"serviceparts": {
		"verified": "completed",
	},
	"servicekalibrasi": {
		"verified": "completed",
	},
}



func normalizeAlias(entityType, value string, aliases map[string]map[string]string, defaultValue string) string {
	normalized := strings.ToLower(strings.TrimSpace(value))
	if normalized == "" {
		return defaultValue
	}

	if mapping, ok := aliases[entityType]; ok {
		if canonical, ok := mapping[normalized]; ok {
			return canonical
		}
	}

	return normalized
}

func NormalizeStatus(entityType, status string) string {
	return normalizeAlias(entityType, status, statusAliases, "")
}

func NormalizeTab(entityType, tab string, defaultValue string) string {
	normalized := normalizeAlias(entityType, tab, tabAliases, defaultValue)
	if normalized == "" {
		return defaultValue
	}

	return normalized
}
