<?php
session_start();
require_once __DIR__ . '/config.php';

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

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['status' => 'error', 'message' => 'অনুমতি নেই!']);
    exit();
}

$product_id = isset($_POST['product_id']) ? intval($_POST['product_id']) : 0;
$qty = isset($_POST['qty']) ? intval($_POST['qty']) : 1;
$size = isset($_POST['size']) ? trim($_POST['size']) : '';
$color = isset($_POST['color']) ? trim($_POST['color']) : '';
$action = isset($_POST['action']) ? trim($_POST['action']) : 'add_to_cart';

if ($product_id <= 0) {
    echo json_encode(['status' => 'error', 'message' => 'অকার্যকর প্রোডাক্ট আইডি!']);
    exit();
}

try {
    // প্রোডাক্টটি ডাটাবেজে আসলেই আছে কি না তা চেক করা
    $stmt = $pdo->prepare("SELECT name, price, discount_price, image, stock_quantity FROM products WHERE id = ? AND status = 'active'");
    $stmt->execute([$product_id]);
    $product = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$product) {
        echo json_encode(['status' => 'error', 'message' => 'দুঃখিত, প্রোডাক্টটি খুঁজে পাওয়া যায়নি!']);
        exit();
    }

    if ($product['stock_quantity'] < $qty) {
        echo json_encode(['status' => 'error', 'message' => 'দুঃখিত, পর্যাপ্ত স্টক নেই!']);
        exit();
    }

    // কার্ট সেশন শুরু না হয়ে থাকলে ইনিশিয়ালাইজ করা
    if (!isset($_SESSION['cart'])) {
        $_SESSION['cart'] = [];
    }

    // ইউনিক কার্ট কী (যাতে একই প্রোডাক্টের ভিন্ন সাইজ/কালার আলাদা আইটেম হিসেবে জমা হয়)
    $cart_key = $product_id . '_' . $size . '_' . $color;

    // কার্টে প্রোডাক্ট যোগ করা বা পরিমাণ আপডেট করা
    $final_price = ($product['discount_price'] > 0) ? $product['discount_price'] : $product['price'];

    if (isset($_SESSION['cart'][$cart_key])) {
        $_SESSION['cart'][$cart_key]['qty'] += $qty;
    } else {
        $_SESSION['cart'][$cart_key] = [
            'product_id' => $product_id,
            'name'       => $product['name'],
            'price'      => $final_price,
            'image'      => $product['image'],
            'size'       => $size,
            'color'      => $color,
            'qty'        => $qty
        ];
    }

    echo json_encode(['status' => 'success', 'message' => 'কার্ট আপডেট সফল হয়েছে!']);
    exit();

} catch (PDOException $e) {
    echo json_encode(['status' => 'error', 'message' => 'ডাটাবেস ত্রুটি: ' . $e->getMessage()]);
    exit();
}