<?php
// تمكين عرض الأخطاء للتصحيح
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// تعريف BASE_URL

// بيانات الاتصال بقاعدة البيانات
require_once __DIR__ . '/db.php';

// جلب البيانات المرسلة من JavaScript
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $query = isset($_POST['query']) ? trim($_POST['query']) : '';
} else {
    $query = isset($_GET['query']) ? trim($_GET['query']) : '';
}

if (empty($query)) {
    header('Content-Type: application/json');
    echo json_encode([
        'success' => false, 
        'message' => 'الرجاء إدخال نص للبحث'
    ]);
    exit;
}

// تنظيف استعلام البحث
$searchQuery = '%' . $query . '%';

try {
    // استعلام بحث شامل عن المنتجات
    $sql = "
        SELECT 
            p.id,
            p.name,
            p.description,
            p.price,
            p.discounted_price,
            p.stock_quantity,
            c.name as category_name,
            pi.image_url as image
        FROM products p
        LEFT JOIN categories c ON p.category_id = c.id
        LEFT JOIN product_images pi ON p.id = pi.product_id AND pi.is_primary = 1
        WHERE p.is_active = 1 
        AND (
            p.name LIKE :search 
            OR p.description LIKE :search 
            OR c.name LIKE :search
        )
        ORDER BY 
            CASE 
                WHEN p.name LIKE :exact THEN 1
                WHEN p.description LIKE :exact THEN 2
                ELSE 3
            END,
            p.is_featured DESC,
            p.created_at DESC
        LIMIT 10
    ";
    
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':search', $searchQuery, PDO::PARAM_STR);
    $stmt->bindValue(':exact', '%' . trim($query) . '%', PDO::PARAM_STR);
    $stmt->execute();
    
    $products = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (count($products) > 0) {
        // معالجة بيانات المنتجات
        $processedProducts = [];
        foreach ($products as $product) {
            // تحديد السعر النهائي (يأخذ الخصم في الاعتبار)
            $finalPrice = $product['discounted_price'] ?: $product['price'];
            $priceDisplay = number_format($finalPrice, 2) . ' دج';
            
            // إذا كان هناك خصم
            if ($product['discounted_price']) {
                $priceDisplay = number_format($product['discounted_price'], 2) . ' دج <del style="color: #6b7280; font-size: 14px;">' . number_format($product['price'], 2) . ' دج</del>';
            }
            
            $processedProducts[] = [
                'id' => $product['id'],
                'name' => htmlspecialchars($product['name']),
                'price' => $priceDisplay,
                'stock' => $product['stock_quantity'] ?: 0,
                'category' => htmlspecialchars($product['category_name'] ?: 'غير مصنف'),
                'image' => $product['image'] ? BASE_URL . 'admin/' . $product['image'] : '',
                'has_discount' => !empty($product['discounted_price'])
            ];
        }
        
        header('Content-Type: application/json');
        echo json_encode([
            'success' => true,
            'message' => 'تم العثور على ' . count($products) . ' منتجات',
            'products' => $processedProducts,
            'query' => $query
        ]);
        
    } else {
        // البحث في الكلمات المفتاحية أو البحث الموسع
        $keywords = explode(' ', $query);
        $keywordConditions = [];
        $keywordParams = [];
        
        foreach ($keywords as $index => $keyword) {
            if (strlen($keyword) > 2) {
                $keywordConditions[] = "(p.name LIKE :keyword$index OR p.description LIKE :keyword$index)";
                $keywordParams[":keyword$index"] = '%' . $keyword . '%';
            }
        }
        
        if (!empty($keywordConditions)) {
            $keywordSql = "
                SELECT 
                    p.id,
                    p.name,
                    p.description,
                    p.price,
                    p.discounted_price,
                    p.stock_quantity,
                    c.name as category_name
                FROM products p
                LEFT JOIN categories c ON p.category_id = c.id
                WHERE p.is_active = 1 
                AND (" . implode(' OR ', $keywordConditions) . ")
                LIMIT 5
            ";
            
            $keywordStmt = $pdo->prepare($keywordSql);
            foreach ($keywordParams as $key => $value) {
                $keywordStmt->bindValue($key, $value, PDO::PARAM_STR);
            }
            $keywordStmt->execute();
            
            $keywordProducts = $keywordStmt->fetchAll(PDO::FETCH_ASSOC);
            
            if (count($keywordProducts) > 0) {
                $processedKeywordProducts = [];
                foreach ($keywordProducts as $product) {
                    $finalPrice = $product['discounted_price'] ?: $product['price'];
                    $processedKeywordProducts[] = [
                        'id' => $product['id'],
                        'name' => htmlspecialchars($product['name']),
                        'price' => number_format($finalPrice, 2) . ' دج',
                        'stock' => $product['stock_quantity'] ?: 0,
                        'category' => htmlspecialchars($product['category_name'] ?: 'غير مصنف')
                    ];
                }
                
                header('Content-Type: application/json');
                echo json_encode([
                    'success' => true,
                    'message' => 'ربما تبحث عن أحد هذه المنتجات:',
                    'products' => $processedKeywordProducts,
                    'query' => $query
                ]);
                exit;
            }
        }
        
        // إذا لم يعثر على أي منتج
        header('Content-Type: application/json');
        echo json_encode([
            'success' => false,
            'message' => 'لم أتمكن من العثور على منتجات تطابق "' . htmlspecialchars($query) . '".<br>'
                . 'جرب استخدام كلمات بحث أخرى مثل: "مروحة"، "مدفأة"، "عروض".'
        ]);
    }
    
} catch (PDOException $e) {
    header('Content-Type: application/json');
    echo json_encode([
        'success' => false,
        'message' => 'حدث خطأ في البحث: ' . $e->getMessage()
    ]);
}
?>