<?php
/**
 * submit_order_cart.php
 * يعالج طلبات السلة (منتجات متعددة) ويُنشئ أوامر الطلب في قاعدة البيانات
 */


require_once __DIR__ . '/db.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('Location: cart.php');
    exit;
}

/* ── التحقق من المدخلات ── */
$customer_name  = trim($_POST['customer_name']  ?? '');
$phone          = trim($_POST['phone']          ?? '');
$phone2         = trim($_POST['phone2']         ?? '');
$address        = trim($_POST['address']        ?? '');
$wilaya_id      = (int)($_POST['wilaya_id']     ?? 0);
$commune_id     = (int)($_POST['commune_id']    ?? 0);
$delivery_type  = ($_POST['delivery_type']      ?? 'home') === 'office' ? 'office' : 'home';
$delivery_price = (float)($_POST['delivery_price'] ?? 0);
$cart_raw       = $_POST['cart_data']           ?? '[]';

$errors = [];
if (empty($customer_name))         $errors[] = 'الاسم الكامل مطلوب';
if (empty($phone))                 $errors[] = 'رقم الهاتف مطلوب';
if (!preg_match('/^\d+$/', $phone)) $errors[] = 'رقم الهاتف يجب أن يحتوي أرقاماً فقط';
if (!$wilaya_id)                    $errors[] = 'يرجى اختيار الولاية';

$cart_items = json_decode($cart_raw, true);
if (empty($cart_items) || !is_array($cart_items)) $errors[] = 'السلة فارغة';

if (!empty($errors)) {
    $msg = implode('<br>', $errors);
    die("<div style='font-family:Cairo,sans-serif;padding:30px;direction:rtl;'>
            <h2 style='color:#ef4444'>خطأ في البيانات</h2>
            <p>$msg</p>
            <a href='javascript:history.back()' style='color:#1a56db'>← العودة</a>
         </div>");
}

/* ── جلب اسم الولاية ── */
$wilaya_name = '';
try {
    $s = $pdo->prepare("SELECT name FROM wilayas WHERE id=?");
    $s->execute([$wilaya_id]);
    $wilaya_name = $s->fetchColumn() ?: '';
} catch(Exception $e){}

/* ── إنشاء الطلبات (طلب لكل منتج) ── */
// يمكنك تعديل هذا ليكون طلباً واحداً برقم مرجعي مشترك إذا أردت
$order_ids = [];
$subtotal  = 0;

// نقسّم سعر التوصيل على عدد المنتجات (أو تضيفه على الطلب الأول فقط)
$del_per_first = $delivery_price; // نضيفه على أول طلب فقط
$first = true;

$pdo->beginTransaction();
try {
    foreach ($cart_items as $item) {
        $product_id = (int)($item['id']   ?? 0);
        $variant_id = (int)($item['variant_id'] ?? 0) ?: null;
        $qty        = max(1, (int)($item['qty'] ?? 1));
        $price      = (float)($item['price'] ?? 0);
        $attrs_json = json_encode($item['attributes'] ?? []);

        // تحقق من وجود المنتج
        $sp = $pdo->prepare("SELECT id FROM products WHERE id=? AND is_active=1");
        $sp->execute([$product_id]);
        if (!$sp->fetch()) continue;

        $del_this_order = $first ? $del_per_first : 0;
        $total_this     = ($price * $qty) + $del_this_order;
        $subtotal      += $price * $qty;

        $stmt = $pdo->prepare("
            INSERT INTO orders
                (product_id, variant_id, customer_name, phone, phone2,
                 address, wilaya_id, commune_id, wilaya_name,
                 quantity, unit_price, delivery_price, total_price,
                 delivery_type, selected_attributes, status, created_at)
            VALUES
                (:pid, :vid, :cname, :phone, :phone2,
                 :addr, :wid, :cid, :wname,
                 :qty, :uprice, :dprice, :tprice,
                 :dtype, :attrs, 'جديد', NOW())
        ");
        $stmt->execute([
            ':pid'   => $product_id,
            ':vid'   => $variant_id,
            ':cname' => $customer_name,
            ':phone' => $phone,
            ':phone2'=> $phone2,
            ':addr'  => $address,
            ':wid'   => $wilaya_id,
            ':cid'   => $commune_id ?: null,
            ':wname' => $wilaya_name,
            ':qty'   => $qty,
            ':uprice'=> $price,
            ':dprice'=> $del_this_order,
            ':tprice'=> $total_this,
            ':dtype' => $delivery_type,
            ':attrs' => $attrs_json,
        ]);
        $order_ids[] = $pdo->lastInsertId();
        $first = false;
    }

    if (empty($order_ids)) {
        $pdo->rollBack();
        die("لم يتم إنشاء أي طلب. يرجى المحاولة مرة أخرى.");
    }

    $pdo->commit();
} catch (Exception $e) {
    $pdo->rollBack();
    die("حدث خطأ أثناء حفظ الطلب: " . $e->getMessage());
}

/* ── صفحة النجاح ── */
$store = $pdo->query("SELECT * FROM stores WHERE id=1")->fetch(PDO::FETCH_ASSOC);
$orders_count = count($order_ids);
$grand_total  = $subtotal + $delivery_price;
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>تم تأكيد طلبك — <?php echo htmlspecialchars($store['name']); ?></title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700;800;900&display=swap" rel="stylesheet">
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Cairo',sans-serif;background:#f4f6f9;color:#0d1117;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;}
.card{background:#fff;border-radius:20px;padding:48px 36px;max-width:520px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.12);text-align:center;animation:pop .5s cubic-bezier(.34,1.56,.64,1);}
@keyframes pop{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:scale(1);}}
.icon-wrap{width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,#10b981,#059669);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:42px;color:#fff;box-shadow:0 8px 24px rgba(16,185,129,.35);}
h1{font-size:26px;font-weight:900;color:#0d1117;margin-bottom:8px;}
.subtitle{color:#8492a6;font-size:15px;margin-bottom:28px;}
.info-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f0f0;font-size:14px;}
.info-row:last-of-type{border:none;}
.info-row .label{color:#8492a6;font-weight:600;}
.info-row .val{font-weight:700;}
.total-row{background:#eff4ff;border-radius:10px;padding:14px 18px;margin:16px 0;display:flex;justify-content:space-between;align-items:center;}
.total-row .l{font-size:15px;font-weight:800;color:#0d1117;}
.total-row .v{font-size:24px;font-weight:900;color:#1a56db;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:50px;font-family:'Cairo',sans-serif;font-size:15px;font-weight:700;text-decoration:none;transition:.25s;}
.btn-primary{background:linear-gradient(135deg,#1a56db,#1340aa);color:#fff;box-shadow:0 6px 18px rgba(26,86,219,.35);margin-top:24px;}
.btn-primary:hover{transform:translateY(-2px);}
.order-ids{background:#f8fafc;border-radius:8px;padding:10px;margin:12px 0;font-size:12px;color:#8492a6;}
</style>
</head>
<body>
<div class="card">
    <div class="icon-wrap"><i class="fas fa-check"></i></div>
    <h1>تم تأكيد طلبك! 🎉</h1>
    <p class="subtitle">شكراً <?php echo htmlspecialchars($customer_name); ?>، سنتصل بك قريباً لتأكيد التوصيل</p>

    <div class="info-row"><span class="label">الاسم</span><span class="val"><?php echo htmlspecialchars($customer_name); ?></span></div>
    <div class="info-row"><span class="label">الهاتف</span><span class="val"><?php echo htmlspecialchars($phone); ?></span></div>
    <div class="info-row"><span class="label">الولاية</span><span class="val"><?php echo htmlspecialchars($wilaya_name); ?></span></div>
    <div class="info-row"><span class="label">نوع التوصيل</span><span class="val"><?php echo $delivery_type==='home'?'إلى المنزل':'إلى المكتب'; ?></span></div>
    <div class="info-row"><span class="label">عدد المنتجات</span><span class="val"><?php echo $orders_count; ?> طلب</span></div>

    <div class="total-row">
        <span class="l">المجموع الكلي</span>
        <span class="v"><?php echo number_format($grand_total,2); ?> دج</span>
    </div>

    <div class="order-ids">
        أرقام الطلبات: #<?php echo implode(' | #', $order_ids); ?>
    </div>

    <a href="index.php" class="btn btn-primary">
        <i class="fas fa-store"></i> مواصلة التسوق
    </a>
</div>

<!-- إفراغ السلة بعد نجاح الطلب -->
<script>
localStorage.removeItem('medshop_cart');
</script>
</body>
</html>