<?php
// المسار: public/product.php
// عرض منتج فردي (منظم + سلايدر صور + دعم فيديوهات YouTube/Reels/ملفات محلية/iframe جاهز)

declare(strict_types=1);

require_once __DIR__ . '/../includes/db.php';
$config = require __DIR__ . '/../config.php';

$base   = rtrim($config['base_url'] ?? '', '/');
$public = $base . '/public';

if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}

/* =======================
   Helpers
======================= */
if (!function_exists('e')) {
    function e($v) {
        return htmlspecialchars((string)$v, ENT_QUOTES, 'UTF-8');
    }
}

if (!function_exists('asset_url')) {
    function asset_url(string $path): string {
        global $base;
        $path = trim($path);
        if ($path === '') return '';
        if (preg_match('~^https?://~i', $path)) return $path;
        if (str_starts_with($path, '/uploads/')) return $base . '/public' . $path;
        if (str_starts_with($path, '/public/'))  return $base . $path;
        if ($path[0] === '/') return $base . $path;
        return $base . '/' . ltrim($path, '/');
    }
}

if (!function_exists('price')) {
    function price(float $v): string {
        global $config;
        $baseCurrency = $config['currency_code'] ?? 'JOD';
        $selected     = $_SESSION['currency'] ?? $baseCurrency;
        $rates        = $config['currency_rates']   ?? [$baseCurrency => 1];
        $symbols      = $config['currency_symbols'] ?? [$baseCurrency => ($config['currency_symbol'] ?? 'د.أ')];

        $rate      = $rates[$selected] ?? 1;
        $converted = $v * $rate;
        $amount    = number_format($converted, 2);
        $symbol    = $symbols[$selected] ?? $selected;
        $pos       = $config['currency_position'] ?? 'after';

        return $pos === 'after' ? "$amount $symbol" : "$symbol $amount";
    }
}

/* =======================
   Params + Query
======================= */
$id = (int)($_GET['id'] ?? 0);
if ($id <= 0) {
    header('Location: index.php');
    exit;
}

// المنتج
$product = null;
try {
    $st = $pdo->prepare(
        'SELECT p.*, c.name AS category_name
         FROM products p
         LEFT JOIN categories c ON c.id = p.category_id
         WHERE p.id = :id
         LIMIT 1'
    );
    $st->execute([':id' => $id]);
    $product = $st->fetch(PDO::FETCH_ASSOC);
} catch (Throwable $e) {
    // يمكن لاحقًا تسجيل الخطأ في لوج
}

if (!$product) {
    header('Location: index.php');
    exit;
}

// تحديث المشاهدات
try {
    $stViews = $pdo->prepare('UPDATE products SET views = COALESCE(views,0)+1 WHERE id = :id');
    $stViews->execute([':id' => $id]);
} catch (Throwable $e) {}

// وسائط المنتج (صور + فيديو)
$media = [];
try {
    $med = $pdo->prepare(
        'SELECT *
         FROM product_media
         WHERE product_id = :p
         ORDER BY sort_order, id'
    );
    $med->execute([':p' => $id]);
    $media = $med->fetchAll(PDO::FETCH_ASSOC);
} catch (Throwable $e) {}

/* =======================
   Presentation Data
======================= */
$page_title = $product['name'] ?? 'المنتج';
include __DIR__ . '/partials/shop_header.php';

$stock      = (int)($product['stock'] ?? 0);
$views      = (int)($product['views'] ?? 0);
$catName    = $product['category_name'] ?? 'غير مصنف';
$isFeatured = !empty($product['is_featured']);
$viewsBadgeThreshold = (int)($config['views_badge_threshold'] ?? 5);

/* =======================
   Images (slider) + Videos
======================= */

// نبني مصفوفة بكل الصور المستخدمة في السلايدر
$imageSlides = [];

// 1) صورة رئيسية إن وجدت
if (!empty($product['main_image'])) {
    $imageSlides[] = asset_url($product['main_image']);
}

// 2) كل الصور من product_media (تشمل صورة غلاف الفيديو مع sort_order=-10)
foreach ($media as $m) {
    if (($m['media_type'] ?? '') === 'image' && !empty($m['file'])) {
        $u = asset_url($m['file']);
        if (!in_array($u, $imageSlides, true)) {
            $imageSlides[] = $u;
        }
    }
}

// 3) إن لم توجد أي صورة → Placeholder
if (!$imageSlides) {
    $imageSlides[] = 'https://via.placeholder.com/800x600?text=No+Image';
}

// مصفوفة روابط/أكواد الفيديو
$videoMedia = [];
foreach ($media as $m) {
    if (($m['media_type'] ?? '') === 'video' && !empty($m['file'])) {
        $videoMedia[] = $m['file'];
    }
}
?>

<style>
/* مصغّرات تحت السلايدر */
.product-thumbs-row{
  margin-top:.75rem;
  display:flex;
  gap:.5rem;
  overflow-x:auto;
  padding-bottom:.25rem;
}
.product-thumb-item{
  width:70px;
  height:70px;
  border-radius:12px;
  overflow:hidden;
  border:2px solid transparent;
  flex:0 0 auto;
  cursor:pointer;
  background:#f1f5f9;
}
.product-thumb-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.product-thumb-item.active{
  border-color:#0d6efd;
}
</style>

<div class="container my-4">
  <div class="product-page">

    <!-- عمود الصور (مع سلايدر) -->
    <div class="product-media-col">

      <?php if (count($imageSlides) <= 1): ?>
        <!-- صورة واحدة فقط -->
        <div class="product-main-image-wrapper">
          <img src="<?= e($imageSlides[0]) ?>" alt="<?= e($product['name']) ?>" class="product-main-image">

          <?php if ($isFeatured): ?>
            <span class="badge-featured">مميز</span>
          <?php endif; ?>

          <?php if ($views >= $viewsBadgeThreshold): ?>
            <span class="badge-view">الأكثر مشاهدة</span>
          <?php endif; ?>
        </div>
      <?php else: ?>
        <!-- سلايدر Bootstrap -->
        <div id="productCarousel" class="carousel slide product-main-image-wrapper" data-bs-ride="carousel">
          <div class="carousel-indicators">
            <?php foreach ($imageSlides as $idx => $_img): ?>
              <button type="button"
                      data-bs-target="#productCarousel"
                      data-bs-slide-to="<?= $idx ?>"
                      class="<?= $idx === 0 ? 'active' : '' ?>"
                      aria-current="<?= $idx === 0 ? 'true' : 'false' ?>"
                      aria-label="صورة <?= $idx+1 ?>"></button>
            <?php endforeach; ?>
          </div>

          <div class="carousel-inner">
            <?php foreach ($imageSlides as $idx => $imgUrl): ?>
              <div class="carousel-item <?= $idx === 0 ? 'active' : '' ?>">
                <img src="<?= e($imgUrl) ?>" class="d-block w-100 product-main-image" alt="<?= e($product['name']) ?>">
              </div>
            <?php endforeach; ?>
          </div>

          <button class="carousel-control-prev" type="button" data-bs-target="#productCarousel" data-bs-slide="prev">
            <span class="carousel-control-prev-icon" aria-hidden="true"></span>
            <span class="visually-hidden">السابق</span>
          </button>
          <button class="carousel-control-next" type="button" data-bs-target="#productCarousel" data-bs-slide="next">
            <span class="carousel-control-next-icon" aria-hidden="true"></span>
            <span class="visually-hidden">التالي</span>
          </button>

          <?php if ($isFeatured): ?>
            <span class="badge-featured">مميز</span>
          <?php endif; ?>

          <?php if ($views >= $viewsBadgeThreshold): ?>
            <span class="badge-view">الأكثر مشاهدة</span>
          <?php endif; ?>
        </div>

        <!-- المصغّرات أسفل السلايدر -->
        <div class="product-thumbs-row mt-2">
          <?php foreach ($imageSlides as $idx => $imgUrl): ?>
            <div class="product-thumb-item <?= $idx === 0 ? 'active' : '' ?>">
              <img src="<?= e($imgUrl) ?>" alt="<?= e($product['name']) ?>">
            </div>
          <?php endforeach; ?>
        </div>
      <?php endif; ?>

    </div>

    <!-- عمود التفاصيل -->
    <div class="product-info-col">
      <h1 class="product-title-page"><?= e($product['name']) ?></h1>

      <div class="product-meta-row">
        <span class="pm-item"><?= e($catName) ?></span>
        <span class="pm-sep">•</span>
        <span class="pm-item">مشاهدات: <?= $views ?></span>
        <span class="pm-sep">•</span>
        <span class="pm-item">المخزون: <?= $stock ?></span>
      </div>

      <div class="product-price-card">
        <div>
          <div class="product-price-lg"><?= price((float)$product['price']) ?></div>
          <div class="product-stock-small">
            المخزون المتوفر: <?= $stock > 0 ? $stock : 'غير متوفر حاليًا' ?>
          </div>
        </div>

        <form method="post"
              action="<?= e($public) ?>/cart.php"
              class="product-add-form">
          <input type="hidden" name="action" value="add">
          <input type="hidden" name="product_id" value="<?= (int)$product['id'] ?>">

          <div class="product-qty-field">
            <label class="form-label small mb-1">الكمية</label>
            <input
              type="number"
              name="qty"
              value="1"
              min="1"
              class="form-control qty-input">
          </div>

          <button class="btn btn-success rounded-pill product-add-btn" <?= $stock <= 0 ? 'disabled' : '' ?>>
            <i class="bi bi-cart-plus"></i>
            <?= $stock > 0 ? 'أضف للسلة' : 'غير متوفر' ?>
          </button>
        </form>
      </div>

    
	
	
	      <div class="product-desc-card">
        <h2 class="h6 fw-bold mb-2">الوصف</h2>
        <div class="text-body mb-3">
          <?= nl2br(e($product['description'] ?? 'لا يوجد وصف متاح لهذا المنتج')) ?>
        </div>

        <!-- خانة الطلب والتوصيل + خيارات الدفع -->
        <div class="mt-3 p-3 rounded-3" style="background:#f9fafb; border:1px dashed #cbd5e1;">
          <h3 class="h6 fw-bold mb-2" style="color:#d97706;">
            ✨ للطلب وخدمة التوصيل ✨
          </h3>

          <div class="small" style="line-height:1.9;">
            <span style="color:#0f766e;">📩 التواصل عبر رسائل الصفحة</span><br><br>

            <span style="color:#b91c1c;">📞 الطلبات عبر واتساب </span><br>
            <span style="color:#1d4ed8; font-weight:700;">📱 0799186062</span><br><br>

            <span style="color:#16a34a;">🤝 الأمانة غايتنا</span><br>
            <span style="color:#7c2d12;">☝️ ومخافة الله مَردّنا</span><br><br>

            <span style="color:#2563eb;">🚚 توصيل سريع</span><br>
            <span style="color:#7c3aed;">🌟 ثقتكم مسؤوليتنا</span>
          </div>

          <hr class="my-3">

          <div class="small" style="line-height:1.9;">
            <span style="color:#334155;">🛒 يمكنكم أيضاً استخدام زر</span>
            <span style="color:#15803d; font-weight:700;">"أضف للسلة"</span>
            <span style="color:#334155;">واختيار طريقة الدفع المناسبة لكم من خلال إتمام الطلب في السلة.</span>
          </div>
        </div>
      </div>
	  
	  

      <?php if (!empty($videoMedia)): ?>
        <div class="product-desc-card mt-3">
          <h2 class="h6 fw-bold mb-2">فيديو المنتج</h2>

          <?php
            // نستخدم أول فيديو فقط (يمكن توسيعها لاحقاً لعرض أكثر من فيديو)
            $v = $videoMedia[0];

            // 1) لو القيمة HTML تبدأ بـ <iframe نعرضها كما هي (تم لصق كود جاهز من فيسبوك مثلاً)
            $trimmed = ltrim($v);
            if (strncasecmp($trimmed, '<iframe', 7) === 0) {
                // نطبع الكود كما هو بدون هروب HTML
                echo $trimmed;
            } else {
                // 2) تحليل بسيط حسب نوع الرابط / الملف
                $isLocal    = !preg_match('~^https?://~i', $v); // ملف مرفوع
                $isYouTube  = preg_match('~youtube\.com|youtu\.be~i', $v);
                $isFacebook = preg_match('~facebook\.com/.*/(videos|reel)/~i', $v);

                if ($isLocal) {
                    echo '<video src="'.e(asset_url($v)).'" controls style="width:100%; border-radius:12px;"></video>';
                } elseif ($isYouTube) {
                    $vid = '';
                    $urlQuery = parse_url($v, PHP_URL_QUERY);
                    if ($urlQuery) {
                        parse_str($urlQuery, $qv);
                        $vid = $qv['v'] ?? '';
                    }
                    if (!$vid && preg_match('~youtu\.be/([^?&/]+)~', $v, $mm)) {
                        $vid = $mm[1] ?? '';
                    }
                    if ($vid) {
                        echo '<div class="ratio ratio-16x9">
                                <iframe src="https://www.youtube.com/embed/'.e($vid).'"
                                        title="فيديو المنتج"
                                        frameborder="0"
                                        allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
                                        allowfullscreen></iframe>
                              </div>';
                    } else {
                        echo '<a href="'.e($v).'" target="_blank" class="btn btn-outline-secondary btn-sm">مشاهدة الفيديو على يوتيوب</a>';
                    }
                } elseif ($isFacebook) {
                    echo '<div class="ratio ratio-16x9 mb-2">
                            <iframe
                              src="https://www.facebook.com/plugins/video.php?href='.urlencode($v).'&show_text=false&width=800"
                              style="border:none;overflow:hidden"
                              scrolling="no"
                              frameborder="0"
                              allowfullscreen="true"
                              allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share">
                            </iframe>
                          </div>
                          <div class="small text-muted">
                            إذا لم يظهر الفيديو هنا، يمكنك مشاهدته مباشرة من فيسبوك:
                            <a href="'.e($v).'" target="_blank">فتح الفيديو</a>
                          </div>';
                } else {
                    echo '<a href="'.e($v).'" target="_blank" class="btn btn-outline-secondary btn-sm">مشاهدة الفيديو</a>';
                }
            }
          ?>
        </div>
      <?php endif; ?>

      <div class="product-actions-row">
        <a href="index.php" class="btn btn-outline-secondary rounded-pill">
          <i class="bi bi-arrow-right"></i> رجوع للمتجر
        </a>
        <a href="cart.php" class="btn btn-primary rounded-pill">
          <i class="bi bi-cart"></i> الذهاب للسلة
        </a>
      </div>
    </div>

  </div>
</div>

<!-- شريط شراء (موبايل) -->
<div class="mobile-buy-bar d-md-none">
  <div class="price-mobile"><?= price((float)$product['price']) ?></div>

  <form method="post"
        action="<?= e($public) ?>/cart.php"
        class="d-flex align-items-center gap-2 m-0">
    <input type="hidden" name="action" value="add">
    <input type="hidden" name="product_id" value="<?= (int)$product['id'] ?>">
    <input type="hidden" name="qty" value="1">
    <button class="btn btn-success btn-sm rounded-pill" <?= $stock <= 0 ? 'disabled' : '' ?>>
      <i class="bi bi-cart-plus"></i> أضف
    </button>
  </form>
</div>

<?php include __DIR__ . '/partials/shop_footer.php'; ?>