import type { Metadata } from 'next'
import { getTranslations, setRequestLocale } from 'next-intl/server'
import { CourseRegisterView } from '@/components/course-register-view'
import { buildShareMetadata } from '@/lib/metadata'
import { getStaticSiteSettings } from '@/lib/site-settings'

type CourseRegistrationPageProps = {
  params: Promise<{ locale: string; slug: string }>
}

export async function generateMetadata({ params }: CourseRegistrationPageProps): Promise<Metadata> {
  const { locale, slug } = await params
  const site = getStaticSiteSettings()
  const t = await getTranslations({ locale, namespace: 'training.register' })
  const courseLabel = slug.replace(/-/g, ' ')

  return {
    ...buildShareMetadata({
      locale,
      title: t('meta.title'),
      description: t('meta.description', { course: courseLabel }),
      path: `/courses/${slug}/register`,
      site,
    }),
    robots: { index: false, follow: false },
  }
}

export default async function CourseRegistrationPage({ params }: CourseRegistrationPageProps) {
  const { locale } = await params
  setRequestLocale(locale)
  return <CourseRegisterView />
}
