import { redirect } from 'next/navigation'
import { eq } from 'drizzle-orm'
import { auth } from '@/auth'
import { db } from '@/db'
import { users } from '@/db/schema'
import { getI18nForUserId } from '@/lib/i18n/server'
import OnboardingClient from './OnboardingClient'

export default async function OnboardingPage() {
  const session = await auth()
  if (!session?.user?.id) redirect('/login')
  const i18n = await getI18nForUserId(session.user.id)
  const t = i18n.t

  const [user] = await db
    .select({ preferredLanguage: users.preferredLanguage })
    .from(users)
    .where(eq(users.id, session.user.id))
    .limit(1)

  return (
    <OnboardingClient
      initialPreferredLanguage={user?.preferredLanguage ?? null}
      labels={{
        title: t('onboarding.title'),
        body: t('onboarding.body'),
        firstName: t('settings.firstName'),
        lastName: t('settings.lastName'),
        preferredLanguage: t('settings.language.label'),
        continue: t('onboarding.continue'),
        saving: t('onboarding.saving'),
        error: t('onboarding.error'),
      }}
    />
  )
}
