import { getTranslations } from 'next-intl/server'
import FlashSalePageContent from '@/components/frontend/offers/FlashSalePageContent'
import { getAllOffers } from '@/lib/db/queries/getFlashSale'

interface FlashSalePageProps {
  params: Promise<{ locale: string }>
}

export async function generateMetadata({ params }: FlashSalePageProps) {
  const { locale } = await params
  const t = await getTranslations({ locale, namespace: 'FlashSalePage' })
  return { title: t('pageTitle') }
}

// Server Component: every `is_offer=1` coupon (not just the single
// is_featured=1 homepage teaser) shows here as its own offer block, each
// with every applicable product (client-paginated, 9 per page). See
// getAllOffers in src/lib/db/queries/getFlashSale.ts and DATA_FETCHING_PATTERN.md.
export default async function FlashSalePage({ params }: FlashSalePageProps) {
  const { locale } = await params
  const [flashT, pageT, offers] = await Promise.all([
    getTranslations({ locale, namespace: 'FlashSale' }),
    getTranslations({ locale, namespace: 'FlashSalePage' }),
    getAllOffers(locale),
  ])

  return (
    <FlashSalePageContent
      offers={offers}
      labels={{
        pageTitle: pageT('pageTitle'),
        badgeText: pageT('badgeText'),
        description: pageT('description'),
        endsIn: pageT('endsIn'),
        fallbackTitle: flashT('title'),
        fallbackSubtitle: flashT('subtitle'),
        noActiveTitle: pageT('noActiveTitle'),
        noActiveDescription: pageT('noActiveDescription'),
        viewAllOffers: pageT('viewAllOffers'),
      }}
    />
  )
}
