import type { Locale } from '@/lib/localization/config';

export interface ComponentLabCopy {
  developmentLabel: string;
  title: string;
  body: string;
  actions: { primary: string; conversion: string; loading: string; disabled: string };
  form: {
    label: string;
    supporting: string;
    placeholder: string;
    error: string;
    checkbox: string;
    switch: string;
  };
  tabs: { label: string; items: Array<{ id: string; label: string; content: string }> };
  accordion: { items: Array<{ id: string; title: string; content: string }> };
  alert: { title: string; body: string };
  workflow: Array<{ id: string; ordinal: string; title: string; description: string }>;
  comparison: { beforeTitle: string; afterTitle: string; before: string[]; after: string[] };
  preview: {
    title: string;
    caption: string;
    illustrative: string;
    rows: Array<{ id: string; primary: string; secondary: string; status: string }>;
  };
  metric: { value: string; label: string; qualification: string; status: string };
  cta: { title: string; body: string; primary: string; unavailable: string };
  dialog: { open: string; title: string; description: string; close: string; content: string };
  menu: { label: string; first: string; second: string };
}

const copy = {
  en: {
    developmentLabel: 'Development fixture, not production content',
    title: 'Core component system',
    body: 'A deterministic test surface for accessible, localized, theme-aware, and RTL-native components.',
    actions: {
      primary: 'Primary action',
      conversion: 'Book a demonstration',
      loading: 'Submitting',
      disabled: 'Unavailable action',
    },
    form: {
      label: 'Work email',
      supporting: 'Use a fictional address in this development fixture.',
      placeholder: 'name@fictional.invalid',
      error: 'Enter an address in the required format.',
      checkbox: 'Send a fictional confirmation',
      switch: 'Enable compact preview',
    },
    tabs: {
      label: 'Operations views',
      items: [
        { id: 'reservations', label: 'Reservations', content: 'Reservation fixture content.' },
        {
          id: 'fleet',
          label: 'Fleet availability',
          content: 'Fleet fixture content with intentionally expanded wording.',
        },
        { id: 'returns', label: 'Returns', content: 'Return inspection fixture content.' },
      ],
    },
    accordion: {
      items: [
        {
          id: 'a1',
          title: 'How does the component system handle localization?',
          content:
            'Copy is passed as complete localized values rather than concatenated fragments.',
        },
        {
          id: 'a2',
          title: 'Does this submit data?',
          content: 'No. External submission remains blocked pending CRM and legal approval.',
        },
      ],
    },
    alert: {
      title: 'Development-only fixture',
      body: 'This surface demonstrates behavior without publishing customer evidence or operational claims.',
    },
    workflow: [
      {
        id: 'reserve',
        ordinal: '1',
        title: 'Reservation',
        description: 'Capture an illustrative reservation request.',
      },
      {
        id: 'prepare',
        ordinal: '2',
        title: 'Preparation',
        description: 'Review a fictional vehicle readiness state.',
      },
      {
        id: 'handover',
        ordinal: '3',
        title: 'Handover',
        description: 'Present a controlled pickup checklist.',
      },
      {
        id: 'return',
        ordinal: '4',
        title: 'Return',
        description: 'Record an illustrative inspection outcome.',
      },
    ],
    comparison: {
      beforeTitle: 'Fragmented operations',
      afterTitle: 'Connected workflow',
      before: ['Repeated manual entry', 'Scattered status checks', 'Unclear ownership'],
      after: ['One shared workflow', 'Visible state changes', 'Explicit responsibility'],
    },
    preview: {
      title: 'Fleet availability preview',
      caption: 'Illustrative interface fixture. It is not live operational data.',
      illustrative: 'Illustrative data',
      rows: [
        { id: 'RDG-1042', primary: 'Compact vehicle', secondary: 'RDG-1042', status: 'Available' },
        { id: 'RDG-2088', primary: 'Utility vehicle', secondary: 'RDG-2088', status: 'Preparing' },
      ],
    },
    metric: {
      value: '24',
      label: 'Illustrative workflow checkpoints',
      qualification: 'Development fixture only. Not a public performance claim.',
      status: 'Research only',
    },
    cta: {
      title: 'CTA destination remains governed',
      body: 'The conversion treatment is reusable, while unresolved destinations stay disabled.',
      primary: 'Book a demonstration',
      unavailable: 'Destination pending approval',
    },
    dialog: {
      open: 'Open dialog',
      title: 'Accessible dialog fixture',
      description: 'Focus moves into this native modal and returns to the trigger.',
      close: 'Close dialog',
      content: 'No data is submitted from this component fixture.',
    },
    menu: { label: 'More actions', first: 'Review fixture', second: 'Archive fixture' },
  },
  fr: {
    developmentLabel: 'Exemple de développement, contenu non destiné à la production',
    title: 'Système de composants principal',
    body: 'Une surface de test déterministe pour des composants accessibles, localisés, adaptés aux thèmes et natifs en RTL.',
    actions: {
      primary: 'Action principale',
      conversion: 'Réserver une démonstration',
      loading: 'Envoi en cours',
      disabled: 'Action indisponible',
    },
    form: {
      label: 'Adresse e-mail professionnelle',
      supporting: 'Utilisez une adresse fictive dans cet exemple de développement.',
      placeholder: 'nom@fictif.invalid',
      error: 'Saisissez une adresse au format requis.',
      checkbox: 'Envoyer une confirmation fictive',
      switch: 'Activer l’aperçu compact',
    },
    tabs: {
      label: 'Vues des opérations',
      items: [
        { id: 'reservations', label: 'Réservations', content: 'Contenu fictif des réservations.' },
        {
          id: 'fleet',
          label: 'Disponibilité du parc automobile',
          content: 'Contenu fictif du parc avec un libellé volontairement plus long.',
        },
        { id: 'returns', label: 'Retours', content: 'Contenu fictif de l’inspection au retour.' },
      ],
    },
    accordion: {
      items: [
        {
          id: 'a1',
          title: 'Comment le système gère-t-il la localisation ?',
          content:
            'Le texte est transmis sous forme de valeurs localisées complètes, sans concaténation de fragments.',
        },
        {
          id: 'a2',
          title: 'Ces composants transmettent-ils des données ?',
          content:
            'Non. La transmission externe reste bloquée jusqu’à l’approbation du CRM et du contenu juridique.',
        },
      ],
    },
    alert: {
      title: 'Exemple réservé au développement',
      body: 'Cette surface démontre les comportements sans publier de preuves client ni d’allégations opérationnelles.',
    },
    workflow: [
      {
        id: 'reserve',
        ordinal: '1',
        title: 'Réservation',
        description: 'Saisir une demande de réservation illustrative.',
      },
      {
        id: 'prepare',
        ordinal: '2',
        title: 'Préparation',
        description: 'Examiner un état fictif de préparation du véhicule.',
      },
      {
        id: 'handover',
        ordinal: '3',
        title: 'Remise du véhicule',
        description: 'Présenter une liste de contrôle maîtrisée.',
      },
      {
        id: 'return',
        ordinal: '4',
        title: 'Retour',
        description: 'Consigner un résultat d’inspection illustratif.',
      },
    ],
    comparison: {
      beforeTitle: 'Opérations fragmentées',
      afterTitle: 'Flux de travail connecté',
      before: ['Saisie manuelle répétée', 'Vérifications dispersées', 'Responsabilités imprécises'],
      after: ['Un flux partagé', 'Des changements d’état visibles', 'Une responsabilité explicite'],
    },
    preview: {
      title: 'Aperçu de la disponibilité du parc',
      caption:
        'Exemple d’interface illustratif. Il ne s’agit pas de données opérationnelles en direct.',
      illustrative: 'Données illustratives',
      rows: [
        {
          id: 'RDG-1042',
          primary: 'Véhicule compact',
          secondary: 'RDG-1042',
          status: 'Disponible',
        },
        {
          id: 'RDG-2088',
          primary: 'Véhicule utilitaire',
          secondary: 'RDG-2088',
          status: 'En préparation',
        },
      ],
    },
    metric: {
      value: '24',
      label: 'Points de contrôle illustratifs',
      qualification: 'Exemple de développement uniquement. Ce n’est pas une allégation publique.',
      status: 'Recherche uniquement',
    },
    cta: {
      title: 'La destination du CTA reste contrôlée',
      body: 'Le traitement de conversion est réutilisable, tandis que les destinations non résolues restent désactivées.',
      primary: 'Réserver une démonstration',
      unavailable: 'Destination en attente d’approbation',
    },
    dialog: {
      open: 'Ouvrir la boîte de dialogue',
      title: 'Exemple de boîte de dialogue accessible',
      description: 'Le focus entre dans la fenêtre modale native puis revient au déclencheur.',
      close: 'Fermer la boîte de dialogue',
      content: 'Aucune donnée n’est transmise depuis cet exemple.',
    },
    menu: { label: 'Autres actions', first: 'Examiner l’exemple', second: 'Archiver l’exemple' },
  },
  ar: {
    developmentLabel: 'نموذج للتطوير وليس محتوى للإنتاج',
    title: 'نظام المكوّنات الأساسي',
    body: 'سطح اختبار ثابت لمكوّنات قابلة للوصول ومترجمة ومتوافقة مع السمات وداعمة لاتجاه الكتابة من اليمين إلى اليسار.',
    actions: {
      primary: 'إجراء أساسي',
      conversion: 'حجز عرض توضيحي',
      loading: 'جارٍ الإرسال',
      disabled: 'إجراء غير متاح',
    },
    form: {
      label: 'البريد الإلكتروني للعمل',
      supporting: 'استخدم عنواناً افتراضياً في نموذج التطوير هذا.',
      placeholder: 'name@fictional.invalid',
      error: 'أدخل عنواناً بالتنسيق المطلوب.',
      checkbox: 'إرسال تأكيد افتراضي',
      switch: 'تفعيل المعاينة المدمجة',
    },
    tabs: {
      label: 'عروض العمليات',
      items: [
        { id: 'reservations', label: 'الحجوزات', content: 'محتوى افتراضي للحجوزات.' },
        {
          id: 'fleet',
          label: 'توفر أسطول المركبات',
          content: 'محتوى افتراضي للأسطول مع نص موسّع عمداً.',
        },
        { id: 'returns', label: 'عمليات الإرجاع', content: 'محتوى افتراضي لفحص الإرجاع.' },
      ],
    },
    accordion: {
      items: [
        {
          id: 'a1',
          title: 'كيف يتعامل نظام المكوّنات مع الترجمة؟',
          content: 'يُمرر النص كقيم مترجمة كاملة بدلاً من تجميع أجزاء الجمل.',
        },
        {
          id: 'a2',
          title: 'هل ترسل هذه المكوّنات بيانات؟',
          content:
            'لا. يظل الإرسال الخارجي محظوراً إلى حين اعتماد نظام إدارة علاقات العملاء والمحتوى القانوني.',
        },
      ],
    },
    alert: {
      title: 'نموذج مخصص للتطوير',
      body: 'يوضح هذا السطح السلوك من دون نشر أدلة عملاء أو ادعاءات تشغيلية.',
    },
    workflow: [
      { id: 'reserve', ordinal: '١', title: 'الحجز', description: 'تسجيل طلب حجز توضيحي.' },
      {
        id: 'prepare',
        ordinal: '٢',
        title: 'تجهيز المركبة',
        description: 'مراجعة حالة افتراضية لجاهزية المركبة.',
      },
      {
        id: 'handover',
        ordinal: '٣',
        title: 'التسليم',
        description: 'عرض قائمة تحقق مضبوطة للاستلام.',
      },
      { id: 'return', ordinal: '٤', title: 'الإرجاع', description: 'تسجيل نتيجة فحص توضيحية.' },
    ],
    comparison: {
      beforeTitle: 'عمليات مجزأة',
      afterTitle: 'سير عمل مترابط',
      before: ['إدخال يدوي متكرر', 'فحوصات حالة متفرقة', 'مسؤولية غير واضحة'],
      after: ['سير عمل مشترك', 'تغييرات حالة مرئية', 'مسؤولية محددة'],
    },
    preview: {
      title: 'معاينة توفر الأسطول',
      caption: 'نموذج واجهة توضيحي وليس بيانات تشغيلية مباشرة.',
      illustrative: 'بيانات توضيحية',
      rows: [
        { id: 'RDG-1042', primary: 'مركبة مدمجة', secondary: 'RDG-1042', status: 'متاحة' },
        { id: 'RDG-2088', primary: 'مركبة خدمية', secondary: 'RDG-2088', status: 'قيد التجهيز' },
      ],
    },
    metric: {
      value: '٢٤',
      label: 'نقاط تحقق توضيحية لسير العمل',
      qualification: 'نموذج تطوير فقط وليس ادعاءً عاماً عن الأداء.',
      status: 'للبحث فقط',
    },
    cta: {
      title: 'تظل وجهة الدعوة إلى الإجراء خاضعة للحوكمة',
      body: 'يمكن إعادة استخدام نمط التحويل، بينما تبقى الوجهات غير المحسومة معطلة.',
      primary: 'حجز عرض توضيحي',
      unavailable: 'الوجهة بانتظار الاعتماد',
    },
    dialog: {
      open: 'فتح مربع الحوار',
      title: 'نموذج مربع حوار قابل للوصول',
      description: 'ينتقل التركيز إلى النافذة الأصلية ثم يعود إلى زر الفتح.',
      close: 'إغلاق مربع الحوار',
      content: 'لا تُرسل أي بيانات من نموذج المكوّن هذا.',
    },
    menu: { label: 'إجراءات إضافية', first: 'مراجعة النموذج', second: 'أرشفة النموذج' },
  },
} satisfies Record<Locale, ComponentLabCopy>;

export function getComponentLabCopy(locale: Locale): ComponentLabCopy {
  return copy[locale];
}
