export type CarplaceLanguage = 'en' | 'fr' | 'ar'

export type CarplaceHomepageMetric = {
  value: string
  label: string
}

export type CarplaceHomepagePillar = {
  title: string
  body: string
}

export type CarplaceHomepageStep = {
  step: string
  title: string
  body: string
}

export type CarplaceHomepageTestimonial = {
  quote: string
  author: string
  role: string
  company?: string
}

export type CarplaceHomepageHowItWorksStep = {
  number: string
  title: string
  description: string
}

export type CarplaceHomepageSectionType =
  | 'hero'
  | 'surface'
  | 'pillars'
  | 'audiences'
  | 'features'
  | 'howitworks'
  | 'steps'
  | 'testimonials'
  | 'closing'

export type CarplaceHomepageContent = {
  sections: CarplaceHomepageSectionType[]
  heroKicker: string
  heroTitle: string
  heroBody: string
  startTrial: string
  exploreVehicles: string
  surfaceLabel: string
  surfaceTitle: string
  surfaceBody: string
  liveLabel: string
  trustedFleets: string
  brandedFlows: string
  multiTenant: string
  companyKicker: string
  companyTitle: string
  companyBody: string
  renterKicker: string
  renterTitle: string
  renterBody: string
  pillars: CarplaceHomepagePillar[]
  metrics: CarplaceHomepageMetric[]
  featureLabel: string
  features: string[]
  howitworksKicker: string
  howitworksTitle: string
  howitworksSteps: CarplaceHomepageHowItWorksStep[]
  stepsTitle: string
  steps: CarplaceHomepageStep[]
  stepLabel: string
  testimonialsKicker: string
  testimonialsTitle: string
  testimonials: CarplaceHomepageTestimonial[]
  readyKicker: string
  readyTitle: string
  readyBody: string
  viewPricing: string
  createWorkspace: string
}

export type CarplaceHomepageConfig = Record<CarplaceLanguage, CarplaceHomepageContent>

export const defaultCarplaceHomepageSections: CarplaceHomepageSectionType[] = [
  'hero',
  'surface',
  'pillars',
  'audiences',
  'features',
  'howitworks',
  'steps',
  'testimonials',
  'closing',
]

export const defaultCarplaceHomepageContent: CarplaceHomepageConfig = {
  en: {
    sections: defaultCarplaceHomepageSections,
    heroKicker: 'RentalDriveGo',
    heroTitle: 'The operating system for modern fleet management.',
    heroBody:
      'Run your entire rental operation from one platform — inventory, bookings, payments, and customer experience, all under your own brand.',
    startTrial: 'Start free trial',
    exploreVehicles: 'Explore vehicles',
    surfaceLabel: 'Unified dashboard',
    surfaceTitle: 'One platform. Every operation.',
    surfaceBody:
      'Fleet operators need power, renters need simplicity. RentalDriveGo delivers both without compromise — no templates, no generic workflows.',
    liveLabel: 'Live platform',
    trustedFleets: 'Real-time fleet control',
    brandedFlows: 'White-label booking engine',
    multiTenant: 'Multi-company architecture',
    companyKicker: 'Operator command center',
    companyTitle: 'Manage inventory, pricing, contracts, and team from a single pane of glass.',
    companyBody:
      "Publish once, control visibility per channel, and keep every company's data, payments, and reporting fully isolated.",
    renterKicker: 'Customer experience',
    renterTitle: 'Give renters a fast, transparent booking journey that ends on your branded checkout.',
    renterBody:
      'RentalDriveGo powers discovery and conversion — not a walled garden. Browse here, book there, and pay directly to the fleet owner.',
    pillars: [
      ['Unified command', 'Vehicle inventory, dynamic pricing, and promotional offers flow from one admin hub into Carplace discovery and your own branded booking website.'],
      ['Smart discovery', 'Location-aware search, reputation scoring, and AI-curated listings help renters find the right vehicle in seconds.'],
      ['Direct revenue', 'Every booking routes through your own payment gateway — you own the customer relationship and the cash flow.'],
    ].map(([title, body]) => ({ title: title!, body: body! })),
    metrics: [
      ['01', 'Multi-tenant fleet operations'],
      ['02', 'White-label booking experience'],
      ['03', 'Direct-to-owner payments'],
    ].map(([value, label]) => ({ value: value!, label: label! })),
    featureLabel: 'What RentalDriveGo covers',
    features: [
      'Fleet inventory with multi-photo uploads and condition tracking',
      'Dynamic pricing engine with seasonal and promotional rules',
      'White-label booking site per fleet operator',
      'Customer CRM, real-time analytics, and automated billing',
    ],
    howitworksKicker: 'GETTING STARTED',
    howitworksTitle: 'How It Works',
    howitworksSteps: [
      {
        number: '1',
        title: 'Create Your Workspace',
        description: 'Sign up and launch your fleet workspace with a 30-day free trial — no credit card required.',
      },
      {
        number: '2',
        title: 'Onboard Your Fleet',
        description: 'Upload vehicles, configure pricing, and publish offers that appear on the Carplace instantly.',
      },
      {
        number: '3',
        title: 'Go Live',
        description: 'Customers discover your fleet, book through your branded site, and payments land directly in your account.',
      },
    ],
    stepsTitle: 'How fleets launch on RentalDriveGo',
    steps: [
      ['1', 'Create your fleet workspace', 'Choose a plan, start your 30-day trial, and verify your operator account.'],
      ['2', 'Publish vehicles and offers', 'Upload vehicle data once and control exactly what appears on every channel.'],
      ['3', 'Accept bookings on your terms', 'Customers discover your fleet on RentalDriveGo, then complete the booking on your own branded checkout.'],
    ].map(([step, title, body]) => ({ step: step!, title: title!, body: body! })),
    stepLabel: 'Step',
    testimonialsKicker: 'CUSTOMER STORIES',
    testimonialsTitle: 'Trusted by fleet operators worldwide',
    testimonials: [
      {
        quote:
          'RentalDriveGo transformed how we manage our 200+ vehicle fleet. The unified dashboard cut our admin time by half and our bookings doubled in three months.',
        author: 'Sarah Johnson',
        role: 'Fleet Director',
        company: 'Premium Auto Rentals',
      },
      {
        quote:
          'The white-label booking engine is a game-changer. Our customers never leave our brand experience, yet we get Carplace visibility.',
        author: 'Ahmed Hassan',
        role: 'Operations Director',
        company: 'Desert Wheels',
      },
      {
        quote:
          'We evaluated six platforms before RentalDriveGo. The multi-tenant architecture and direct payment model made it the obvious choice for our growing operation.',
        author: 'Marie Dubois',
        role: 'CEO',
        company: 'Provence Car Hire',
      },
    ],
    readyKicker: 'Ready to launch',
    readyTitle: 'Your fleet deserves an operating system, not just a listing site.',
    readyBody:
      'RentalDriveGo gives you the tools to run your entire rental business — from inventory to invoicing — while keeping your brand front and center at every touchpoint.',
    viewPricing: 'View pricing',
    createWorkspace: 'Create workspace',
  },
  fr: {
    sections: defaultCarplaceHomepageSections,
    heroKicker: 'RentalDriveGo',
    heroTitle: "Le système d'exploitation pour la gestion de flotte moderne.",
    heroBody:
      "Gérez l'ensemble de votre activité de location depuis une seule plateforme — inventaire, réservations, paiements et expérience client, le tout sous votre propre marque.",
    startTrial: "Commencer l'essai gratuit",
    exploreVehicles: 'Explorer les véhicules',
    surfaceLabel: 'Tableau de bord unifié',
    surfaceTitle: 'Une plateforme. Toutes les opérations.',
    surfaceBody:
      'Les opérateurs de flotte ont besoin de puissance, les clients ont besoin de simplicité. RentalDriveGo offre les deux sans compromis — aucun modèle générique.',
    liveLabel: 'Plateforme active',
    trustedFleets: 'Contrôle de flotte en temps réel',
    brandedFlows: 'Moteur de réservation en marque blanche',
    multiTenant: 'Architecture multi-entreprise',
    companyKicker: 'Centre de commande opérateur',
    companyTitle: "Gérez l'inventaire, les tarifs, les contrats et l'équipe depuis une interface unique.",
    companyBody:
      'Publiez une seule fois, contrôlez la visibilité par canal et gardez les données, les paiements et les rapports de chaque entreprise totalement isolés.',
    renterKicker: 'Expérience client',
    renterTitle: 'Offrez aux clients un parcours de réservation rapide et transparent qui se termine sur votre page de marque.',
    renterBody:
      'RentalDriveGo alimente la découverte et la conversion — pas un jardin fermé. Parcourez ici, réservez là-bas et payez directement au propriétaire de la flotte.',
    pillars: [
      ["Commande unifiée", "L'inventaire, la tarification dynamique et les offres promotionnelles circulent depuis un hub d'administration unique vers Carplace et votre vitrine de marque."],
      ['Découverte intelligente', 'Recherche géolocalisée, score de réputation et annonces optimisées aident les clients à trouver le bon véhicule en quelques secondes.'],
      ['Revenus directs', 'Chaque réservation passe par votre propre passerelle de paiement — vous gardez la relation client et la trésorerie.'],
    ].map(([title, body]) => ({ title: title!, body: body! })),
    metrics: [
      ['01', 'Opérations de flotte multi-tenant'],
      ['02', 'Expérience de réservation en marque blanche'],
      ['03', 'Paiements directs au propriétaire'],
    ].map(([value, label]) => ({ value: value!, label: label! })),
    featureLabel: 'Ce que RentalDriveGo couvre',
    features: [
      "Inventaire de flotte avec photos multiples et suivi d'état",
      'Moteur de tarification dynamique avec règles saisonnières et promotionnelles',
      'Site de réservation en marque blanche par opérateur',
      'CRM client, analytics en temps réel et facturation automatisée',
    ],
    howitworksKicker: 'MISE EN ROUTE',
    howitworksTitle: 'Comment ça marche',
    howitworksSteps: [
      {
        number: '1',
        title: 'Créez votre espace',
        description: 'Inscrivez-vous et lancez votre espace de flotte avec un essai gratuit de 30 jours — sans carte bancaire.',
      },
      {
        number: '2',
        title: 'Intégrez votre flotte',
        description: 'Ajoutez vos véhicules, configurez les tarifs et publiez des offres visibles instantanément sur Carplace.',
      },
      {
        number: '3',
        title: 'Passez en direct',
        description: 'Les clients découvrent votre flotte, réservent via votre site de marque et les paiements arrivent directement sur votre compte.',
      },
    ],
    stepsTitle: 'Comment les flottes se lancent sur RentalDriveGo',
    steps: [
      ['1', 'Créez votre espace de flotte', 'Choisissez un plan, démarrez votre essai de 30 jours et vérifiez votre compte opérateur.'],
      ['2', 'Publiez véhicules et offres', 'Ajoutez vos données une seule fois et contrôlez précisément ce qui apparaît sur chaque canal.'],
      ['3', 'Acceptez les réservations selon vos conditions', 'Les clients découvrent votre flotte sur RentalDriveGo, puis finalisent sur votre propre page de réservation.'],
    ].map(([step, title, body]) => ({ step: step!, title: title!, body: body! })),
    stepLabel: 'Étape',
    testimonialsKicker: 'HISTOIRES DE CLIENTS',
    testimonialsTitle: 'Approuvé par des opérateurs de flotte du monde entier',
    testimonials: [
      {
        quote:
          "RentalDriveGo a transformé la gestion de notre flotte de plus de 200 véhicules. Le tableau de bord unifié a réduit notre temps d'administration de moitié et nos réservations ont doublé en trois mois.",
        author: 'Sophie Martin',
        role: 'Directrice de Flotte',
        company: 'Location Premium',
      },
      {
        quote:
          'Le moteur de réservation en marque blanche change la donne. Nos clients ne quittent jamais notre expérience de marque, tout en bénéficiant de la visibilité Carplace.',
        author: 'Jean-Claude Barbier',
        role: 'Directeur des Opérations',
        company: 'Sahara Cars',
      },
      {
        quote:
          "Nous avons évalué six plateformes avant RentalDriveGo. L'architecture multi-tenant et le modèle de paiement direct en ont fait le choix évident pour notre croissance.",
        author: 'Isabelle Leclerc',
        role: 'PDG',
        company: 'Provence Auto',
      },
    ],
    readyKicker: 'Prêt à vous lancer',
    readyTitle: "Votre flotte mérite un système d'exploitation, pas juste un site d'annonces.",
    readyBody:
      "RentalDriveGo vous donne les outils pour gérer l'ensemble de votre activité de location — de l'inventaire à la facturation — tout en gardant votre marque au premier plan à chaque point de contact.",
    viewPricing: 'Voir les tarifs',
    createWorkspace: "Créer l'espace",
  },
  ar: {
    sections: defaultCarplaceHomepageSections,
    heroKicker: 'RentalDriveGo',
    heroTitle: 'نظام التشغيل لإدارة الأساطيل الحديثة.',
    heroBody:
      'قم بإدارة كامل نشاط التأجير الخاص بك من منصة واحدة — المخزون، الحجوزات، المدفوعات وتجربة العملاء، كل ذلك تحت علامتك التجارية الخاصة.',
    startTrial: 'ابدأ التجربة المجانية',
    exploreVehicles: 'استكشف المركبات',
    surfaceLabel: 'لوحة تحكم موحدة',
    surfaceTitle: 'منصة واحدة. كل العمليات.',
    surfaceBody:
      'مشغلو الأساطيل يحتاجون إلى القوة، والمستأجرون يحتاجون إلى البساطة. RentalDriveGo يقدم كليهما بدون تنازلات — لا قوالب جاهزة ولا سير عمل عام.',
    liveLabel: 'منصة نشطة',
    trustedFleets: 'تحكم فوري بالأسطول',
    brandedFlows: 'محرك حجز بالعلامة البيضاء',
    multiTenant: 'بنية متعددة الشركات',
    companyKicker: 'مركز قيادة المشغل',
    companyTitle: 'أدر المخزون والأسعار والعقود والفريق من لوحة تحكم واحدة.',
    companyBody:
      'انشر مرة واحدة، وتحكم في الظهور حسب القناة، واحتفظ ببيانات كل شركة ومدفوعاتها وتقاريرها معزولة تماماً.',
    renterKicker: 'تجربة المستأجر',
    renterTitle: 'امنح المستأجرين رحلة حجز سريعة وشفافة تنتهي على صفحة الدفع الخاصة بك.',
    renterBody:
      'RentalDriveGo يشغّل الاكتشاف والتحويل — وليس حديقة مغلقة. تصفح هنا، احجز هناك، وادفع مباشرة لمالك الأسطول.',
    pillars: [
      ['قيادة موحدة', 'المخزون، التسعير الديناميكي والعروض الترويجية تتدفق من مركز إدارة واحد إلى Carplace وواجهة متجرك الخاصة.'],
      ['اكتشاف ذكي', 'بحث حسب الموقع، تقييم السمعة وقوائم منسقة بالذكاء الاصطناعي تساعد المستأجرين في العثور على المركبة المناسبة بثوانٍ.'],
      ['إيرادات مباشرة', 'كل حجز يمر عبر بوابة الدفع الخاصة بك — أنت تملك علاقة العميل والتدفق النقدي.'],
    ].map(([title, body]) => ({ title: title!, body: body! })),
    metrics: [
      ['01', 'عمليات أسطول متعددة الشركات'],
      ['02', 'تجربة حجز بالعلامة البيضاء'],
      ['03', 'مدفوعات مباشرة للمالك'],
    ].map(([value, label]) => ({ value: value!, label: label! })),
    featureLabel: 'ما الذي يغطيه RentalDriveGo',
    features: [
      'مخزون الأسطول مع رفع صور متعددة وتتبع الحالة',
      'محرك تسعير ديناميكي مع قواعد موسمية وترويجية',
      'موقع حجز بالعلامة البيضاء لكل مشغل أسطول',
      'CRM عملاء، تحليلات فورية وفوترة آلية',
    ],
    howitworksKicker: 'البدء',
    howitworksTitle: 'كيف يعمل',
    howitworksSteps: [
      {
        number: '1',
        title: 'أنشئ مساحتك',
        description: 'سجّل وأطلق مساحة أسطولك مع تجربة مجانية لمدة 30 يوماً — بدون بطاقة ائتمان.',
      },
      {
        number: '2',
        title: 'أضف أسطولك',
        description: 'أضف المركبات، واضبط الأسعار، وانشر العروض التي تظهر فوراً في Carplace.',
      },
      {
        number: '3',
        title: 'انطلق مباشرة',
        description: 'يكتشف العملاء أسطولك، ويحجزون عبر موقعك التجاري، وتصل المدفوعات مباشرة إلى حسابك.',
      },
    ],
    stepsTitle: 'كيف تنطلق الأساطيل على RentalDriveGo',
    steps: [
      ['1', 'أنشئ مساحة عمل أسطولك', 'اختر الخطة وابدأ تجربتك لمدة 30 يوماً وتحقق من حساب المشغل الخاص بك.'],
      ['2', 'انشر المركبات والعروض', 'أضف بيانات المركبات مرة واحدة وتحكم بدقة فيما يظهر على كل قناة.'],
      ['3', 'استقبل الحجوزات بشروطك', 'يكتشف العملاء أسطولك على RentalDriveGo، ثم يكملون الحجز على صفحة الدفع الخاصة بك.'],
    ].map(([step, title, body]) => ({ step: step!, title: title!, body: body! })),
    stepLabel: 'الخطوة',
    testimonialsKicker: 'قصص العملاء',
    testimonialsTitle: 'موثوق من قبل مشغلي الأساطيل حول العالم',
    testimonials: [
      {
        quote:
          'غيّر RentalDriveGo طريقة إدارة أسطولنا المكون من أكثر من 200 مركبة. لوحة التحكم الموحدة قلصت وقت الإدارة إلى النصف وتضاعفت حجوزاتنا في ثلاثة أشهر.',
        author: 'فاطمة الزهراء',
        role: 'مديرة الأسطول',
        company: 'تأجير السيارات الممتازة',
      },
      {
        quote:
          'محرك الحجز بالعلامة البيضاء يغير قواعد اللعبة. عملاؤنا لا يغادرون تجربة علامتنا التجارية أبداً، مع الاستفادة من ظهور Carplace.',
        author: 'محمد علي',
        role: 'مدير العمليات',
        company: 'صحراء ويلز',
      },
      {
        quote:
          'قيمنا ست منصات قبل RentalDriveGo. البنية متعددة الشركات ونموذج الدفع المباشر جعلاه الخيار الواضح لنمونا المتسارع.',
        author: 'ليلى حسن',
        role: 'المديرة التنفيذية',
        company: 'تأجير سيارات البحر الأبيض',
      },
    ],
    readyKicker: 'جاهز للانطلاق',
    readyTitle: 'أسطولك يستحق نظام تشغيل، وليس مجرد موقع إعلانات.',
    readyBody:
      'يمنحك RentalDriveGo الأدوات اللازمة لإدارة كامل نشاط التأجير — من المخزون إلى الفوترة — مع إبقاء علامتك التجارية في المقدمة عند كل نقطة اتصال.',
    viewPricing: 'عرض الأسعار',
    createWorkspace: 'إنشاء المساحة',
  },
}

export function cloneCarplaceHomepageContent(): CarplaceHomepageConfig {
  return JSON.parse(JSON.stringify(defaultCarplaceHomepageContent)) as CarplaceHomepageConfig
}

export function resolveCarplaceHomepageSections(
  sections?: CarplaceHomepageSectionType[] | null,
): CarplaceHomepageSectionType[] {
  const source = sections?.length ? sections : defaultCarplaceHomepageSections
  return source.filter((section, index) => source.indexOf(section) === index)
}
