import { ImageResponse } from 'next/og';
import { getTranslations } from 'next-intl/server';
import { OGImageTemplate } from '@/components/OGImageTemplate';
import { getOgFonts, OG_IMAGE_SIZE, getOgAssets } from '@/lib/og-helper';

export const size = OG_IMAGE_SIZE;
export const contentType = 'image/png';
export const runtime = 'nodejs';

export default async function Image({ params }: { params: Promise<{ locale: string }> }) {
  const { locale } = await params;
  const t = await getTranslations({ locale, namespace: 'Products' });
  const fonts = await getOgFonts();
  const { logo, bgImage } = getOgAssets();

  const title = t.has('meta.title')
    ? t('meta.title')
    : t.has('breadcrumb')
      ? t('breadcrumb')
      : 'Products';
  const description = t('meta.description') || t('subtitle');

  return new ImageResponse(
    <OGImageTemplate
      image={bgImage}
      logo={logo}
      title={title}
      description={description}
      label="Products"
    />,
    {
      ...OG_IMAGE_SIZE,
      fonts,
    },
  );
}
