/**
 * Katalog aramasının paylaşılan metin eşleştirme yardımcıları.
 * Hem /api/katalog-ara route'u hem de client'taki rehber araması kullanır —
 * iki taraf aynı normalize kurallarıyla eşleşmeli.
 */

export function aramaNormalize(metin: string): string {
  return metin
    .toLocaleLowerCase("tr-TR")
    .replace(/ı/g, "i")
    .replace(/ş/g, "s")
    .replace(/ğ/g, "g")
    .replace(/ü/g, "u")
    .replace(/ö/g, "o")
    .replace(/ç/g, "c")
    .replace(/â/g, "a")
    .replace(/î/g, "i")
    .replace(/û/g, "u")
    .normalize("NFKD")
    .replace(/[̀-ͯ]/g, "");
}

/** 0 = tam eşleşme, 1 = baş, 2 = kelime başı, 3 = geçiyor */
export function eslesmePuani(ad: string, sorgu: string): number {
  const normalAd = aramaNormalize(ad);
  if (normalAd === sorgu) return 0;
  if (normalAd.startsWith(sorgu)) return 1;
  if (normalAd.split(/\s+/).some((kelime) => kelime.startsWith(sorgu))) return 2;
  return 3;
}
