import { getLocale } from 'next-intl/server';
import { pathnames } from '../../pathnames';

type AlternatesBuilderParams = {
  pathKey: string;
};

export const buildAlternates = async ({ pathKey }: AlternatesBuilderParams) => {
  const locale = await getLocale();
  const pathInfo = pathnames[pathKey as keyof typeof pathnames];
  
  if (!pathInfo) {
    throw new Error(`Path key '${pathKey}' not found in pathnames`);
  }

  const localizedPath = pathInfo[locale as 'en' | 'fr'] || pathInfo.fr;
  const localePrefix = locale === 'en' ? '/en' : '';
  const fullUrl = `${process.env.NEXT_PUBLIC_FRONTEND_HOST}${localePrefix}${localizedPath}`;

  const languages: Record<string, string> = {};
  Object.entries(pathInfo).forEach(([lang, path]) => {
    const langPrefix = lang === 'en' ? '/en' : '';
    languages[lang] = `${process.env.NEXT_PUBLIC_FRONTEND_HOST}${langPrefix}${path}`;
  });

  return {
    canonical: fullUrl,
    languages
  };
};