export const LOCALE_BCP47: Record<string, string> = {
  en: 'en',
  he: 'he-IL',
  ar: 'ar',
  ru: 'ru',
  fr: 'fr-FR',
  de: 'de-DE',
}

export interface HrefLangAlternate {
  hreflang: string
  href: string
}

export function buildHrefLangs<L extends string>(
  locales: readonly L[],
  current: L,
  urlFn: (locale: L) => string,
): HrefLangAlternate[] {
  const links: HrefLangAlternate[] = locales.map((locale) => ({
    hreflang: LOCALE_BCP47[locale] ?? locale,
    href: urlFn(locale),
  }))

  const defaultLocale = locales.includes(current) ? current : locales[0]
  if (defaultLocale) {
    links.push({ hreflang: 'x-default', href: urlFn(defaultLocale) })
  }

  return links
}
