<?php
// add_to_cart_ajax.php - معالج AJAX محسن للإضافة إلى السلة مع التحقق من تسجيل الدخول

include 'config.php';

// تعيين رأس JSON
header('Content-Type: application/json');

// بدء الجلسة إذا لم تكن موجودة
if (session_status() === PHP_SESSION_NONE) session_start();
if (!isset($_SESSION['cart']) || !is_array($_SESSION['cart'])) $_SESSION['cart'] = [];

// التحقق من تسجيل الدخول
$is_logged_in = isset($_SESSION['customer_id']) && isset($_SESSION['valid_session']);

// التحقق من الطلب
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['add_to_cart'])) {
    echo json_encode(['success' => false, 'message' => 'طلب غير صالح']);
    exit;
}

// إذا لم يكن المستخدم مسجلاً للدخول
if (!$is_logged_in) {
    echo json_encode([
        'success' => false, 
        'message' => 'login_required',
        'login_required' => true,
        'title' => 'تسجيل الدخول مطلوب',
        'description' => 'يجب تسجيل الدخول لإضافة المنتجات إلى السلة'
    ]);
    exit;
}

// التحقق من البيانات
$meal_id = (int)($_POST['meal_id'] ?? 0);
$quantity = (int)($_POST['quantity'] ?? 1);
$portion_id = isset($_POST['portion_id']) && !empty($_POST['portion_id']) ? (int)$_POST['portion_id'] : null;
$portion_name = $_POST['portion_name'] ?? 'كامل';
$portion_price = (float)($_POST['portion_price'] ?? 0);

if ($meal_id <= 0 || $quantity <= 0) {
    echo json_encode(['success' => false, 'message' => 'بيانات غير صالحة']);
    exit;
}

try {
    // جلب معلومات الوجبة
    $stmt = $conn->prepare("SELECT id, name, price, image, has_portions FROM meals WHERE id = ? AND is_active = 1");
    if (!$stmt) {
        throw new Exception('خطأ في قاعدة البيانات');
    }
    
    $stmt->bind_param('i', $meal_id);
    $stmt->execute();
    $meal_result = $stmt->get_result();
    
    if ($meal_result->num_rows === 0) {
        echo json_encode(['success' => false, 'message' => 'الوجبة غير موجودة']);
        $stmt->close();
        exit;
    }
    
    $meal_data = $meal_result->fetch_assoc();
    
    // تحديد السعر النهائي
    $final_price = $meal_data['price'];
    if ($portion_id && $meal_data['has_portions']) {
        $final_price = $portion_price > 0 ? $portion_price : $meal_data['price'];
    }
    
    // التحقق إذا كان المنتج موجوداً
    $found = false;
    foreach ($_SESSION['cart'] as $key => $item) {
        if ($item['meal_id'] == $meal_id && $item['portion_id'] == $portion_id) {
            $_SESSION['cart'][$key]['quantity'] += $quantity;
            $found = true;
            break;
        }
    }
    
    // إضافة منتج جديد
    if (!$found) {
        $_SESSION['cart'][] = [
            'meal_id' => $meal_id,
            'meal_name' => $meal_data['name'],
            'quantity' => $quantity,
            'price' => $final_price,
            'base_price' => $meal_data['price'],
            'image' => $meal_data['image'],
            'has_portions' => $meal_data['has_portions'],
            'portion_id' => $portion_id,
            'portion_name' => $portion_name,
            'portion_price' => $final_price
        ];
    }
    
    // حساب العدد الإجمالي
    $cart_count = 0;
    foreach ($_SESSION['cart'] as $item) {
        $cart_count += $item['quantity'];
    }
    
    // رسالة النجاح
    $message = "✅ تمت إضافة " . $meal_data['name'];
    if ($portion_name !== 'كامل') {
        $message .= " (" . $portion_name . ")";
    }
    $message .= " إلى السلة";
    
    echo json_encode([
        'success' => true,
        'message' => $message,
        'cart_count' => $cart_count
    ]);
    
    $stmt->close();
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => 'حدث خطأ: ' . $e->getMessage()
    ]);
}
?>