package elinps

import (
	"html/template"
	"path/filepath"
	"strings"
)

func mustParseTemplates() *template.Template {
	// Parse de templates via filesystem local (mantém o repositório simples).
	// Se precisarmos de deploy single-binary, podemos migrar para go:embed.
	funcs := template.FuncMap{
		"seq": func(start, end int) []int {
			if end < start {
				return []int{}
			}
			out := make([]int, 0, end-start+1)
			for i := start; i <= end; i++ {
				out = append(out, i)
			}
			return out
		},
		"noteEq": func(ptr *int, v int) bool {
			return ptr != nil && *ptr == v
		},
		"produtoLabel": func(produto string) string {
			// Label "amigável" a partir do produto normalizado.
			p := strings.ReplaceAll(produto, "_", " ")
			parts := strings.Fields(p)
			for i := range parts {
				if len(parts[i]) == 0 {
					continue
				}
				parts[i] = strings.ToUpper(parts[i][:1]) + parts[i][1:]
			}
			return strings.Join(parts, " ")
		},
	}

	pattern := filepath.ToSlash("web/templates/*.html")
	return template.Must(template.New("").Funcs(funcs).ParseGlob(pattern))
}
