<?php
/**
 * service_cards.php
 * Prepared cards: match user query -> image + text (no AI).
 */

$SERVICE_CARDS = [
  'qurum_rooftop' => [
    'title_en' => 'Qurum Rooftop',
    'title_ar' => 'شاشة السطح في القرم',
    'image' => 'qurum_rooftop.jpg',
    'aliases' => [
      'qurum rooftop',
      'qurum',
      'qurum roof',
      'qurum screen',
      'qurum roooftop',
      'شاشة القرم',
      'شاشة السطح في القرم',
      'القرم روفتوب',
      'روفتوب القرم',
      'شاشة قرم',
    ],
    'desc_en' => 'Oman\'s largest and only curved digital screen on Sultan Qaboos Highway in Qurum, Muscat, with strong visibility from key routes and signals.',
    'desc_ar' => 'تقع هذه الشاشة الرقمية الخارجية على شارع السلطان قابوس المزدحم في القرم بمحافظة مسقط، وهي أكبر وأول شاشة رقمية منحنية في سلطنة عُمان، وتتمتع بظهور قوي من الطرق والإشارات الحيوية.',
    'size' => '32M x 7M',
    'resolution' => '3360 x 768',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '70K-80K',
      'monthly' => '2.1M-2.4M',
      'annual' => '25M-29M',
    ],
    'landmarks' => [
      'Oman Arab banks',
      'Muscat Expressway',
      'ROP HQ',
      'Bank Muscat',
      'Hilton Double Tree',
      'Mercedes Benz Showroom'
    ],
  ],
  'qurum_wall' => [
    'title_en' => 'Qurum Wall',
    'title_ar' => 'الشاشة الجدارية في القرم',
    'image' => 'qurum_wall.jpg',
    'aliases' => [
      'qurum wall',
      'qurum wallscape',
      'qurum digital wall',
      'qurum 2',
      'wall qurum',
      'شاشة القرم الجدارية',
      'الشاشة الجدارية في القرم',
      'جدارية القرم',
      'شاشة جدارية القرم',
    ],
    'desc_en' => 'Strategically located on Sultan Qaboos Highway in Qurum\'s commercial district; visible from routes linking Wattayah, Ruwi, Muttrah and from key signals near Shatti Qurum & Muscat Expressway.',
    'desc_ar' => 'تقع هذه الشاشة الرقمية في موقع استراتيجي على شارع السلطان قابوس ضمن المنطقة التجارية الحيوية في القرم، وتُرى من طرق رئيسية تربط الوطية وروي ومطرح، ومن إشارات مرورية رئيسية قرب شاطئ القرم وطريق مسقط السريع.',
    'size' => '5M x 15M',
    'resolution' => '480 x 1440',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '70K-80K',
      'monthly' => '2.1M-2.4M',
      'annual' => '25M-29M',
    ],
    'landmarks' => [
      'Oman Arab banks',
      'Muscat Expressway',
      'ROP HQ',
      'Bank Muscat',
      'Hilton Double Tree',
      'Mercedes Benz Showroom'
    ],
  ],
  'amerat_digital_wall' => [
    'title_en' => 'Amerat Digital Wall',
    'title_ar' => 'الشاشة الجدارية في العامرات',
    'image' => 'amerat_digital_wall.jpg',
    'aliases' => [
      'amerat',
      'al amerat',
      'amerat wall',
      'amerat digital wall',
      'العامرات',
      'شاشة العامرات',
      'الشاشة الجدارية في العامرات',
      'جدارية العامرات',
    ],
    'desc_en' => 'At the entrance of Al Amerat near the first roundabout; largest and only digital screen in the area with heavy daily traffic, giving prime exposure to everyone entering the district.',
    'desc_ar' => 'تقع هذه الشاشة الرقمية عند مدخل منطقة العامرات بالقرب من الدوار الأول، وهي الأكبر والأولى من نوعها في المنطقة، ومع كثافة الحركة اليومية توفر تغطية مثالية لجميع القادمين إلى المنطقة.',
    'size' => '20M x 10M',
    'resolution' => '1920 x 960',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '50K-60K',
      'monthly' => '1.5M-1.9M',
      'annual' => '18M-22M',
    ],
    'landmarks' => [
      'Oman Arab banks',
      'LuLu Amerat',
      'Toyota Parts Center',
      'Way to Quriyath/Sur',
      'Way to Amerat Park',
      'Mal Mart'
    ],
  ],
  'ruwi_digital_wall' => [
    'title_en' => 'Ruwi Digital Wall',
    'title_ar' => 'الشاشة الجدارية في روي',
    'image' => 'ruwi_digital_wall.jpg',
    'aliases' => [
      'ruwi',
      'ruwi wall',
      'ruwi digital wall',
      'روي',
      'شاشة روي',
      'الشاشة الجدارية في روي',
      'جدارية روي',
      'إشارات روي',
    ],
    'desc_en' => 'Located at busy Ruwi Main Signals; largest and only digital screen in the area, visible from Sheraton Signals, Ruwi High Street and Ruwi Roundabout for maximum exposure and lasting impact.',
    'desc_ar' => 'تقع هذه الشاشة الرقمية عند إشارات روي الرئيسية المزدحمة، وهي الأكبر والوحيدة في المنطقة، ومرئية من إشارات فندق شيراتون وشارع روي الرئيسي ودوار روي، ما يضمن انتشارًا قويًا وتأثيرًا دائمًا.',
    'size' => '5M x 10M',
    'resolution' => '480 x 1056',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '50K-60K',
      'monthly' => '1.5M-1.9M',
      'annual' => '18M-22M',
    ],
    'landmarks' => [
      'Ruwi Main Signals',
      'Nesto Ruwi',
      'Badr Sama',
      'Sultan Qaboos Mosque Ruwi',
      'Main Mawasalat Bus Stop',
      'Ruwi R/A'
    ],
  ],
  'azaiba_3d_wall' => [
    'title_en' => 'Azaiba 3D Wall',
    'title_ar' => 'الشاشة الجدارية ثلاثية الأبعاد في العذيبة',
    'image' => 'azaiba_3d_wall.jpg',
    'aliases' => [
      'azaiba',
      'al azaiba',
      'azaiba 3d',
      '3d wall',
      'azaiba wall',
      'azaiba 3d wall',
      'العذيبة',
      'شاشة العذيبة',
      'شاشة ثلاثية الأبعاد',
      '3d',
      'ثلاثية الأبعاد',
      'جدارية العذيبة',
    ],
    'desc_en' => 'A 3D DOOH Wall that turns campaigns into an eye-catching visual spectacle using advanced 3D technology and lifelike imagery that appears to leap out of the screen; built for standout attention and engagement.',
    'desc_ar' => 'إن جدار الإعلانات الرقمية ثلاثية الأبعاد الخاص بنا ليس مجرد لوحة رقمية أخرى، بل مشهد بصري ديناميكي يجذب الانتباه ويحفّز التفاعل. باستخدام تقنية ثلاثية الأبعاد متقدمة وصور نابضة بالحياة تبدو وكأنها تقفز من الشاشة، لتترك انطباعًا لا يُنسى.',
    'type_en' => '3D Screen',
    'type_ar' => 'شاشة ثلاثية الأبعاد (3D)',
    'size' => '11.52M (3.84M + 7.68M) x 6.72M',
    'resolution' => '1152 x 672',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '50K-60K',
      'monthly' => '1.5M-1.9M',
      'annual' => '18M-22M',
    ],
    'landmarks' => [
      'NBO Head Office',
      'Enza Home',
      'Bank Muscat',
      'Bank Dhofar'
    ],
  ],
  'al_hail_rooftop' => [
    'title_en' => 'Al Hail Rooftop',
    'title_ar' => 'شاشة السطح في الحيل',
    'image' => 'al_hail_rooftop.jpg',
    'aliases' => [
      'al hail',
      'hail rooftop',
      'al hail rooftop',
      'alhayl',
      'al hail screen',
      'الحيل',
      'شاشة الحيل',
      'شاشة السطح في الحيل',
      'روفتوب الحيل',
    ],
    'desc_en' => 'On the busy Sultan Qaboos Road; captures commuters from Al Hail to Mabela, Barka and beyond. All-day visibility on one of Muscat\'s most heavily trafficked routes.',
    'desc_ar' => 'تقع هذه الشاشة الرقمية على طريق السلطان قابوس المزدحم، وتستهدف حركة المسافرين من الحيل إلى المبيلة وبركاء وما بعدها، مع رؤية واضحة طوال اليوم على أحد أكثر الطرق ازدحامًا في مسقط.',
    'size' => '30M x 6.5M',
    'resolution' => '2896 x 576',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '80K-90K',
      'monthly' => '2.4M-2.7M',
      'annual' => '29M-33M',
    ],
    'landmarks' => [
      'Shah Nagardas',
      'Sultan Qaboos Road',
      'Nesto',
      'Towell Auto Center'
    ],
  ],
  'mabeelah_rooftop' => [
    'title_en' => 'Mabeelah Rooftop',
    'title_ar' => 'شاشة السطح في المعبيلة',
    'image' => 'mabeelah_rooftop.jpg',
    'aliases' => [
      'mabeelah',
      'al mabeelah',
      'mabela',
      'mabeelah rooftop',
      'mabeelah screen',
      'المعبيلة',
      'شاشة المعبيلة',
      'شاشة السطح في المعبيلة',
      'روفتوب المعبيلة',
      'المبيلة',
    ],
    'desc_en' => 'Positioned on Mabeelah\'s busiest roads in a highly active commercial zone. As the largest screen in Mabeelah, it delivers unmatched visibility with steady traffic throughout the day.',
    'desc_ar' => 'بفضل موقعها الاستراتيجي على أكثر الطرق ازدحامًا في المعبيلة داخل منطقة تجارية نشطة، وتُعد أكبر شاشة في المعبيلة، ما يوفر رؤية قوية وحضورًا لافتًا طوال اليوم مع حركة مرور مستمرة.',
    'size' => '25M x 6M',
    'resolution' => '2496 x 576',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '50K-60K',
      'monthly' => '1.5M-1.9M',
      'annual' => '18M-22M',
    ],
    'landmarks' => [
      'Oman Oil',
      'Sultan Qaboos Road',
      'Al Maha Fuel Station'
    ],
  ],
  'nizwa_rooftop' => [
    'title_en' => 'Nizwa Rooftop',
    'title_ar' => 'شاشة السطح في نزوى',
    'image' => 'nizwa_rooftop.jpg',
    'aliases' => [
      'nizwa',
      'nizwa rooftop',
      'nizwa screen',
      'tanuf',
      'tanuf road',
      'نزوى',
      'شاشة نزوى',
      'شاشة السطح في نزوى',
      'طريق تنوف',
      'سوق نزوى',
    ],
    'desc_en' => 'Targets people heading to the famous Nizwa Souk; positioned at one of the busiest intersections along Tanuf Road for strong reach and visibility.',
    'desc_ar' => 'تستهدف هذه الشاشة الرقمية المتجهين إلى سوق نزوى الشهير، وتقع عند أحد أكثر التقاطعات ازدحامًا على طول طريق تنوف، ما يمنح انتشارًا قويًا ووضوحًا عاليًا.',
    'size' => '8M x 4M',
    'resolution' => '768 x 384',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '9K-10K',
      'monthly' => '1.5M-1.9M',
      'annual' => '270K-300K',
    ],
    'landmarks' => [
      'Nizwa Souk',
      'Nizwa Fort',
      'MOB',
      'Bank Dhofar',
      'Bank Muscat'
    ],
    'extra_note_ar' => 'ملاحظة: الأرقام كما وردت وقد تكون غير متسقة.',
    'extra_note_en' => 'Note: figures are reported as provided and may be inconsistent.',
  ],
  'ghala_heights_rooftop' => [
    'title_en' => 'Ghala Heights Rooftop',
    'title_ar' => 'شاشة السطح في مرتفعات غلا',
    'image' => 'ghala_heights_rooftop.jpg',
    'aliases' => [
      'ghala',
      'ghala heights',
      'ghala rooftop',
      'movenpick',
      'airport road',
      'غلا',
      'مرتفعات غلا',
      'شاشة غلا',
      'شاشة السطح في مرتفعات غلا',
      'طريق المطار',
      'موفنبيك',
    ],
    'desc_en' => 'Along Airport Road from Muscat International Airport toward the city, at Movenpick Hotel Muscat. Captures incoming traffic on a major entry route for high impact.',
    'desc_ar' => 'تقع هذه الشاشة الرقمية على طريق المطار باتجاه المدينة (عند فندق موفنبيك مسقط)، وتجذب انتباه جميع القادمين عبر أحد أهم مداخل العاصمة، ما يضمن تأثيرًا قويًا وتفاعلًا مرتفعًا.',
    'size' => '40M x 7M',
    'resolution' => '',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '80K-90K',
      'monthly' => '2.4M-2.7M',
      'annual' => '29M-33M',
    ],
    'landmarks' => [
      'Muscat International Airport',
      'Qatar Airways',
      'Movenpick',
      'Al Fardan',
      'Premium Motors/Audi'
    ],
    'status_en' => 'Expected launch soon.',
    'status_ar' => 'متوقع إطلاقها قريبًا.',
  ],
  'al_hail_2_wall' => [
    'title_en' => 'Al Hail 2 Wall',
    'title_ar' => 'جدارية الحيل 2',
    'image' => 'al_hail_2_wall.jpg',
    'aliases' => [
      'al hail 2',
      'al hail2',
      'al hail 2 wall',
      'hail 2 wall',
      'الحيل 2',
      'جدارية الحيل 2',
      'شاشة الحيل 2',
    ],
    'desc_en' => 'On Sultan Qaboos Road; captures commuters from Al Hail to Mabela, Barka and beyond with strong all-day visibility.',
    'desc_ar' => 'على طريق السلطان قابوس وتستهدف حركة المسافرين من الحيل إلى المبيلة وبركاء وما بعدها مع رؤية قوية طوال اليوم.',
    'size' => '25M x 6M',
    'resolution' => '2496 x 576',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '80K-90K',
      'monthly' => '2.4M-2.7M',
      'annual' => '29M-33M',
    ],
    'status_en' => 'Expected launch soon.',
    'status_ar' => 'متوقع إطلاقها قريبًا.',
  ],
  'seeb_souq_wall' => [
    'title_en' => 'Seeb Souq Wall',
    'title_ar' => 'جدارية سوق السيب',
    'image' => 'seeb_souq_wall.jpg',
    'aliases' => [
      'seeb',
      'seeb souq',
      'seeb wall',
      'seeb souq wall',
      'سوق السيب',
      'السيب',
      'جدارية سوق السيب',
      'شاشة سوق السيب',
    ],
    'desc_en' => 'A busy arterial road in the heart of Seeb near major retail and market activity, designed to increase exposure duration.',
    'desc_ar' => 'طريق شرياني مزدحم في قلب السيب قرب منطقة سوق وتجّار نشطة لزيادة مدة التعرض.',
    'size' => '5M x 7M',
    'resolution' => '',
    'pixel_pitch' => 'P10',
    'visibility' => [
      'daily' => '30K-40K',
      'monthly' => '0.9M-1.2M',
      'annual' => '10.8M-14.4M',
    ],
    'landmarks' => [
      'Souq Al Seeb',
      'Seeb Mall',
      'Jewelry Market',
      'Seeb Central Market',
      'Bank Muscat',
      'Omantel'
    ],
    'status_en' => 'Expected launch soon.',
    'status_ar' => 'متوقع إطلاقها قريبًا.',
  ],
];

function normalizeText($text) {
  $text = trim((string)$text);
  if ($text === '') return '';
  $text = mb_strtolower($text, 'UTF-8');
  // Arabic normalization (lightweight)
  $map = [
    'أ' => 'ا', 'إ' => 'ا', 'آ' => 'ا',
    'ى' => 'ي', 'ؤ' => 'و', 'ئ' => 'ي',
    'ة' => 'ه'
  ];
  $text = strtr($text, $map);
  $text = preg_replace('/[^\p{L}\p{N}\s]+/u', ' ', $text);
  $text = preg_replace('/\s+/u', ' ', $text);
  return trim($text);
}

function parseSizeArea($size) {
  $size = trim((string)$size);
  if ($size === '') return null;
  if (!preg_match_all('/\d+(?:\.\d+)?/', $size, $matches)) {
    return null;
  }
  $nums = array_map('floatval', $matches[0]);
  if (count($nums) < 2) return null;
  $width = $nums[0];
  $height = $nums[count($nums) - 1];
  if ($width <= 0 || $height <= 0) return null;
  return $width * $height;
}

function formatArea($area) {
  $rounded = round((float)$area, 2);
  if (abs($rounded - round($rounded)) < 0.01) {
    return (string)(int)round($rounded);
  }
  $formatted = number_format($rounded, 2, '.', '');
  return rtrim(rtrim($formatted, '0'), '.');
}

function findServiceCard($userText) {
  global $SERVICE_CARDS;
  $t = normalizeText($userText);
  if ($t === '') return null;
  foreach ($SERVICE_CARDS as $key => $card) {
    $aliases = $card['aliases'] ?? [];
    // Also match by titles
    if (!empty($card['title_en'])) $aliases[] = $card['title_en'];
    if (!empty($card['title_ar'])) $aliases[] = $card['title_ar'];
    foreach ($aliases as $a) {
      $aNorm = normalizeText($a);
      if ($aNorm === '') continue;
      // contains match (either direction)
      if (mb_strpos($t, $aNorm, 0, 'UTF-8') !== false || mb_strpos($aNorm, $t, 0, 'UTF-8') !== false) {
        $card['_key'] = $key;
        return $card;
      }
    }
  }
  return null;
}

function buildServiceCardText($card, $lang = 'ar') {
  $lang = strtolower((string)$lang);
  $isAr = ($lang === 'ar');
  $title = $isAr ? ($card['title_ar'] ?? '') : ($card['title_en'] ?? '');
  if ($title === '') $title = $card['title_en'] ?? ($card['title_ar'] ?? '');
  $desc  = $isAr ? ($card['desc_ar'] ?? '') : ($card['desc_en'] ?? '');
  if ($desc === '') $desc = $card['desc_en'] ?? ($card['desc_ar'] ?? '');
  $type  = $isAr ? ($card['type_ar'] ?? '') : ($card['type_en'] ?? '');
  $size = $card['size'] ?? '';
  $resolution = $card['resolution'] ?? '';
  $pixelPitch = $card['pixel_pitch'] ?? '';
  $visibility = $card['visibility'] ?? [];
  $landmarks = $card['landmarks'] ?? [];
  $status = $isAr ? ($card['status_ar'] ?? '') : ($card['status_en'] ?? '');
  $coordinates = $isAr ? 'غير متاحة في البيانات الحالية' : 'Not available in current data';
  $visibilityNote = $isAr
    ? 'ملاحظة: أرقام الظهور تم توليدها باستخدام أدوات AI متقدمة لقياس التعرض.'
    : 'Note: visibility figures are generated using advanced AI tools to measure exposure.';
  $extraNote = $isAr ? ($card['extra_note_ar'] ?? '') : ($card['extra_note_en'] ?? '');

  $lines = [];
  if ($title) $lines[] = '✅ ' . $title;
  if ($desc)  $lines[] = $desc;
  if ($type) $lines[] = ($isAr ? 'النوع: ' : 'Type: ') . $type;
  if ($size) $lines[] = ($isAr ? 'المقاس: ' : 'Size: ') . $size;
  $area = parseSizeArea($size);
  if ($area !== null) {
    $lines[] = ($isAr ? 'المساحة الاجمالية: ' : 'Total area: ') . formatArea($area) . ($isAr ? ' م2' : ' sqm');
  }
  $resolutionLabel = $resolution !== '' ? $resolution : ($isAr ? 'غير متاحة في البيانات الحالية' : 'Not available in current data');
  $lines[] = ($isAr ? 'الدقة: ' : 'Resolution: ') . $resolutionLabel;
  if ($pixelPitch) $lines[] = ($isAr ? 'Pixel Pitch: ' : 'Pixel Pitch: ') . $pixelPitch;
  if (!empty($visibility)) {
    $visLine = ($isAr ? 'الظهور التقديري: ' : 'Estimated visibility: ')
      . ($visibility['daily'] ?? '') . ($isAr ? ' يومي' : ' daily')
      . ' | ' . ($visibility['monthly'] ?? '') . ($isAr ? ' شهري' : ' monthly')
      . ' | ' . ($visibility['annual'] ?? '') . ($isAr ? ' سنوي' : ' per annum');
    $lines[] = trim($visLine);
  }
  if (!empty($landmarks)) {
    $lines[] = ($isAr ? 'معالم قريبة: ' : 'Landmarks: ') . implode(', ', $landmarks);
  }
  if ($status) {
    $lines[] = ($isAr ? 'الحالة: ' : 'Status: ') . $status;
  }
  if ($coordinates) {
    $lines[] = ($isAr ? 'الإحداثيات: ' : 'Coordinates: ') . $coordinates;
  }
  if ($visibilityNote) $lines[] = $visibilityNote;
  if ($extraNote) $lines[] = $extraNote;
  $lines[] = '';
  $lines[] = $isAr
    ? 'سؤال سريع: الحملة في أي منطقة/مدينة؟ ومدة العرض قد إيه؟'
    : 'Quick question: which city/area and how long is the campaign?';
  $text = implode("\n", $lines);
  return $text;
}
