import type { Metadata } from 'next';
import Link from 'next/link';
import { isLocale, localePath, type Locale } from '@ai-radar/shared';
import { notFound } from 'next/navigation';
import { absoluteUrl, localeAlternates } from '@/lib/site';

type Params = Promise<{ lang: string }>;

export async function generateMetadata({ params }: { params: Params }): Promise<Metadata> {
  const { lang } = await params;
  if (!isLocale(lang)) return {};

  return {
    title: lang === 'ar' ? 'حذف حساب On AI Radar' : 'Delete your On AI Radar account',
    description:
      lang === 'ar'
        ? 'احذف حساب On AI Radar والبيانات المرتبطة به نهائياً.'
        : 'Permanently delete your On AI Radar account and associated data.',
    alternates: {
      canonical: absoluteUrl(`/${lang}/delete-account`),
      languages: localeAlternates('/delete-account'),
    },
  };
}

export default async function DeleteAccountPage({ params }: { params: Params }) {
  const { lang } = await params;
  if (!isLocale(lang)) notFound();

  const c = CONTENT[lang];

  return (
    <main id="main" className="page story" style={{ paddingBlock: 'var(--s10)' }}>
      <h1 className="t-h1">{c.title}</h1>
      <p className="story-summary">{c.intro}</p>

      <div className="story-fields">
        <section className="story-field">
          <h2 className="why-label">{c.howTitle}</h2>
          <ol className="about-list">
            {c.steps.map((step) => <li key={step}>{step}</li>)}
          </ol>
          <Link className="auth-submit" href={localePath('/account', lang)} style={{ display: 'inline-flex', marginTop: 'var(--s4)' }}>
            {c.cta}
          </Link>
          <p className="t-body" style={{ marginTop: 'var(--s3)' }}>
            {c.signedOut}{' '}
            <Link href={localePath('/signin', lang)}>{c.signIn}</Link>.
          </p>
        </section>

        <section className="story-field">
          <h2 className="why-label">{c.deletedTitle}</h2>
          <ul className="about-list">
            {c.deleted.map((item) => <li key={item}>{item}</li>)}
          </ul>
        </section>

        <section className="story-field">
          <h2 className="why-label">{c.localTitle}</h2>
          <p className="t-body" style={{ marginTop: 'var(--s2)' }}>{c.localBody}</p>
          <p className="t-body" style={{ marginTop: 'var(--s2)' }}>
            <Link href={localePath('/privacy', lang)}>{c.privacy}</Link>
          </p>
        </section>
      </div>
    </main>
  );
}

interface DeleteContent {
  title: string;
  intro: string;
  howTitle: string;
  steps: string[];
  cta: string;
  signedOut: string;
  signIn: string;
  deletedTitle: string;
  deleted: string[];
  localTitle: string;
  localBody: string;
  privacy: string;
}

const CONTENT: Record<Locale, DeleteContent> = {
  en: {
    title: 'Delete your On AI Radar account',
    intro: 'You can permanently delete your On AI Radar account and the data associated with it without reinstalling the app.',
    howTitle: 'How to delete it',
    steps: [
      'Sign in on this website with the same account you use in the app.',
      'Open Account and scroll to Delete account.',
      'Read the confirmation and choose Delete account.',
    ],
    cta: 'Open account settings',
    signedOut: 'If you are signed out,',
    signIn: 'sign in or recover your password first',
    deletedTitle: 'What is deleted',
    deleted: [
      'Your account and all active sessions.',
      'Linked Google, GitHub or Apple sign-in identifiers.',
      'Server-side saved stories and account preferences.',
      'Email, Telegram and device alert records linked to the account.',
    ],
    localTitle: 'Data on your device',
    localBody: 'Offline saved stories, theme and language stored only on a device are removed by clearing the app data or uninstalling the app. Account deletion removes the server copy immediately and cannot be undone.',
    privacy: 'Read the full privacy policy',
  },
  ar: {
    title: 'حذف حساب On AI Radar',
    intro: 'يمكنك حذف حساب On AI Radar والبيانات المرتبطة به نهائياً من دون إعادة تثبيت التطبيق.',
    howTitle: 'طريقة الحذف',
    steps: [
      'سجّل الدخول في هذا الموقع بالحساب نفسه الذي تستخدمه في التطبيق.',
      'افتح صفحة الحساب وانتقل إلى قسم حذف الحساب.',
      'اقرأ رسالة التأكيد ثم اختر حذف الحساب.',
    ],
    cta: 'فتح إعدادات الحساب',
    signedOut: 'إذا لم تكن مسجّل الدخول،',
    signIn: 'سجّل الدخول أو استعد كلمة المرور أولاً',
    deletedTitle: 'ما الذي يُحذف',
    deleted: [
      'الحساب وكل الجلسات النشطة.',
      'معرّفات تسجيل الدخول المرتبطة عبر Google أو GitHub أو Apple.',
      'الأخبار المحفوظة على الخادم وتفضيلات الحساب.',
      'سجلات تنبيهات البريد وتيليجرام والجهاز المرتبطة بالحساب.',
    ],
    localTitle: 'البيانات الموجودة على جهازك',
    localBody: 'تُزال الأخبار المحفوظة دون اتصال والمظهر واللغة الموجودة على الجهاز فقط عند مسح بيانات التطبيق أو إلغاء تثبيته. حذف الحساب يزيل نسخة الخادم فوراً ولا يمكن التراجع عنه.',
    privacy: 'اقرأ سياسة الخصوصية كاملة',
  },
};
