<?php
/**
 * API: Toggle Wishlist Item
 * Add or remove product from wishlist
 */

session_start();
header('Content-Type: application/json');

require_once '../../config/database.php';

try {
    // Check if user is logged in
    if (!isset($_SESSION['user_id'])) {
        echo json_encode([
            'success' => false,
            'message' => 'يجب تسجيل الدخول أولاً'
        ]);
        exit;
    }

    // Get product ID
    $product_id = isset($_POST['product_id']) ? (int)$_POST['product_id'] : 0;
    
    if ($product_id <= 0) {
        echo json_encode([
            'success' => false,
            'message' => 'معرف المنتج غير صحيح'
        ]);
        exit;
    }

    $database = new Database();
    $conn = $database->getConnection();
    $user_id = $_SESSION['user_id'];

    // Check if product exists in wishlist
    $query = "SELECT id FROM wishlist WHERE user_id = :user_id AND product_id = :product_id";
    $stmt = $conn->prepare($query);
    $stmt->bindParam(':user_id', $user_id);
    $stmt->bindParam(':product_id', $product_id);
    $stmt->execute();
    
    $exists = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($exists) {
        // Remove from wishlist
        $query = "DELETE FROM wishlist WHERE user_id = :user_id AND product_id = :product_id";
        $stmt = $conn->prepare($query);
        $stmt->bindParam(':user_id', $user_id);
        $stmt->bindParam(':product_id', $product_id);
        $stmt->execute();
        
        // Get updated count
        $query = "SELECT COUNT(*) FROM wishlist WHERE user_id = :user_id";
        $stmt = $conn->prepare($query);
        $stmt->bindParam(':user_id', $user_id);
        $stmt->execute();
        $wishlist_count = $stmt->fetchColumn();

        echo json_encode([
            'success' => true,
            'action' => 'removed',
            'in_wishlist' => false,
            'wishlist_count' => $wishlist_count,
            'message' => 'تم إزالة المنتج من المفضلة'
        ]);
    } else {
        // Add to wishlist
        $query = "INSERT INTO wishlist (user_id, product_id, created_at) VALUES (:user_id, :product_id, NOW())";
        $stmt = $conn->prepare($query);
        $stmt->bindParam(':user_id', $user_id);
        $stmt->bindParam(':product_id', $product_id);
        $stmt->execute();
        
        // Get updated count
        $query = "SELECT COUNT(*) FROM wishlist WHERE user_id = :user_id";
        $stmt = $conn->prepare($query);
        $stmt->bindParam(':user_id', $user_id);
        $stmt->execute();
        $wishlist_count = $stmt->fetchColumn();

        echo json_encode([
            'success' => true,
            'action' => 'added',
            'in_wishlist' => true,
            'wishlist_count' => $wishlist_count,
            'message' => 'تم إضافة المنتج للمفضلة ✓'
        ]);
    }

} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => 'حدث خطأ، حاول مرة أخرى'
    ]);
}
