import type { Metadata } from 'next'
import { getTranslations, setRequestLocale } from 'next-intl/server'
import { GoogleReviewsPage } from '@/components/google-reviews-page'
import { locales, type Locale } from '@/i18n/config'
import { buildShareMetadata } from '@/lib/metadata'
import { getStaticSiteSettings } from '@/lib/site-settings'

type ReviewsPageProps = {
  params: Promise<{ locale: string }>
}

export function generateStaticParams() {
  return locales.map((locale) => ({ locale }))
}

export async function generateMetadata({ params }: ReviewsPageProps): Promise<Metadata> {
  const { locale } = await params
  const t = await getTranslations({ locale, namespace: 'reviews.page' })
  const site = getStaticSiteSettings()

  return buildShareMetadata({
    title: t('meta.title'),
    description: t('meta.description'),
    path: `/${locale}/reviews`,
    site,
  })
}

export default async function ReviewsPage({ params }: ReviewsPageProps) {
  const { locale } = await params
  setRequestLocale(locale as Locale)

  return <GoogleReviewsPage />
}
