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

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

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'طريقة غير صحيحة']);
    exit;
}

$coupon_code = strtoupper(trim($_POST['coupon_code'] ?? ''));
$cart_total = floatval($_POST['cart_total'] ?? 0);

if (empty($coupon_code)) {
    echo json_encode(['success' => false, 'message' => 'الرجاء إدخال كود الخصم']);
    exit;
}

try {
    $database = new Database();
    $db = $database->getConnection();
    
    // Check if coupon exists and is valid
    $query = "SELECT * FROM coupons WHERE code = ? AND is_active = 1";
    $stmt = $db->prepare($query);
    $stmt->execute([$coupon_code]);
    $coupon = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$coupon) {
        echo json_encode(['success' => false, 'message' => 'كود الخصم غير صحيح']);
        exit;
    }
    
    // Check expiry date
    if (!empty($coupon['expiry_date']) && strtotime($coupon['expiry_date']) < time()) {
        echo json_encode(['success' => false, 'message' => 'كود الخصم منتهي الصلاحية']);
        exit;
    }
    
    // Check usage limit
    if (!empty($coupon['usage_limit']) && $coupon['usage_count'] >= $coupon['usage_limit']) {
        echo json_encode(['success' => false, 'message' => 'تم استخدام هذا الكود بالكامل']);
        exit;
    }
    
    // Calculate discount
    $discount = 0;
    if ($coupon['discount_type'] === 'percentage') {
        $discount = ($cart_total * $coupon['discount_value']) / 100;
    } else {
        $discount = $coupon['discount_value'];
    }
    
    // Make sure discount doesn't exceed cart total
    $discount = min($discount, $cart_total);
    
    $new_total = $cart_total - $discount;
    
    // Store coupon in session
    $_SESSION['applied_coupon'] = [
        'code' => $coupon['code'],
        'discount' => $discount,
        'type' => $coupon['discount_type'],
        'value' => $coupon['discount_value']
    ];
    
    echo json_encode([
        'success' => true,
        'message' => 'تم تطبيق كود الخصم بنجاح!',
        'discount' => $discount,
        'new_total' => $new_total,
        'discount_text' => $coupon['discount_type'] === 'percentage' 
            ? $coupon['discount_value'] . '%' 
            : number_format($coupon['discount_value'], 2) . ' ر.س'
    ]);
    
} catch (Exception $e) {
    echo json_encode(['success' => false, 'message' => 'حدث خطأ: ' . $e->getMessage()]);
}
?>
