<?php
// ไฟล์กำหนดการเชื่อมต่อฐานข้อมูล (config.php)
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

$host = 'localhost';
//$user = 'root';
//$pass = '';
//$dbname = 'shop034';
$user = 'u69319090034';
$pass = '@6934';
$dbname = 'shop69319090034';

try {
    // เชื่อมต่อฐานข้อมูล shop034 โดยตรง
    $conn = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    $conn->exec("SET NAMES utf8mb4");
    $conn->exec("SET CHARACTER SET utf8mb4");

} catch (PDOException $e) {
    echo "<div style='padding: 30px; background-color: #ffe3e3; border: 2px solid #ffb3b3; border-radius: 12px; font-family: sans-serif; color: #cc0000; margin: 40px auto; max-width: 600px; text-align:center;'>";
    echo "<h2 style='margin-top: 0;'>❌ ไม่สามารถเชื่อมต่อฐานข้อมูลได้</h2>";
    echo "<p>กรุณาตรวจสอบว่าได้เปิดใช้งาน <strong>Apache</strong> และ <strong>MySQL</strong> ใน XAMPP Control Panel แล้ว</p>";
    echo "<p style='font-size:13px; margin-top:10px;'><strong>Error:</strong> " . htmlspecialchars($e->getMessage()) . "</p>";
    echo "<p style='font-size:13px; margin-top:10px;'>หากยังไม่มีฐานข้อมูล กรุณารันคำสั่ง: <br><code>mysql -u root &lt; database.sql</code> หรือนำเข้าผ่าน phpMyAdmin</p>";
    echo "</div>";
    exit;
}

// ฟังก์ชันดึงรายการสินค้าพร้อมระบบกรอง (Filters)
function getProducts($category_id = null, $min_price = null, $max_price = null, $color = null, $size = null) {
    global $conn;

    // ใช้ subquery สำหรับรูปภาพ เพื่อหลีกเลี่ยงผลลัพธ์ซ้ำจากการ JOIN หลายตาราง
    $sql = "SELECT DISTINCT p.*, c.name as category_name,
            (SELECT image_url FROM product_images WHERE product_id = p.id AND is_main = 1 LIMIT 1) as main_image,
            (SELECT image_url FROM product_images WHERE product_id = p.id ORDER BY sort_order ASC LIMIT 1) as fallback_image
            FROM products p
            LEFT JOIN categories c ON p.category_id = c.id
            WHERE p.status = 'active'";

    $params = [];

    if ($category_id) {
        $sql .= " AND p.category_id = :category_id";
        $params[':category_id'] = $category_id;
    }

    // กรองตามสีสินค้า (ต้อง JOIN variant_option_values)
    if ($color) {
        $sql .= " AND p.id IN (
            SELECT pv2.product_id FROM product_variants pv2
            JOIN variant_option_values vov2 ON pv2.id = vov2.variant_id
            JOIN attribute_values av2 ON vov2.attribute_value_id = av2.id
            WHERE av2.attribute_id = 1 AND av2.value = :color
        )";
        $params[':color'] = $color;
    }

    // กรองตามไซซ์สินค้า
    if ($size) {
        $sql .= " AND p.id IN (
            SELECT pv3.product_id FROM product_variants pv3
            JOIN variant_option_values vov3 ON pv3.id = vov3.variant_id
            JOIN attribute_values av3 ON vov3.attribute_value_id = av3.id
            WHERE av3.attribute_id = 2 AND av3.value = :size
        )";
        $params[':size'] = $size;
    }

    // กรองตามช่วงราคา
    if ($min_price !== null) {
        $sql .= " AND p.base_price >= :min_price";
        $params[':min_price'] = $min_price;
    }
    if ($max_price !== null) {
        $sql .= " AND p.base_price <= :max_price";
        $params[':max_price'] = $max_price;
    }

    $sql .= " ORDER BY p.id DESC";
    $stmt = $conn->prepare($sql);
    $stmt->execute($params);
    return $stmt->fetchAll();
}
?>
