import { verifyPreferenceToken } from '@/lib/email/tokens'
import { loadPreferences } from '@/lib/email/send'
import { DEFAULT_PREFERENCES } from '@/lib/domain/email-policy'
import { EmailPreferencesForm } from '@/components/app/email-preferences-form'

/** Public preference center (2026-09-22, §9): reached from the footer of every updates email. */
export default async function EmailPreferencesPage({ params }: { params: Promise<{ token: string }> }) {
  const { token } = await params
  const t = await verifyPreferenceToken(token)
  const prefs = t?.userId ? await loadPreferences(t.userId) : null
  return (
    <main className="mx-auto max-w-xl px-4 py-10">
      <h1 className="text-2xl font-bold tracking-tight">Email preferences</h1>
      {!t ? (
        <p className="mt-3 text-sm text-neutral-600">This link is not valid. Sign in to HeavyHaul Agent and open Settings → Email to manage your preferences.</p>
      ) : (
        <>
          <p className="mt-1 text-sm text-neutral-600">For <span className="font-semibold">{t.email}</span>. Choose what HeavyHaul Agent sends you. Account and security messages always arrive.</p>
          <div className="mt-6"><EmailPreferencesForm initial={prefs?.prefs ?? DEFAULT_PREFERENCES} token={token} hasAccount={!!t.userId} available={prefs?.available ?? true} /></div>
        </>
      )}
    </main>
  )
}
