<?php
// get_item_edit_data.php
session_start();
require_once "session.php";
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once __DIR__ . '/../db.php';

$itemId = isset($_GET['item_id']) ? (int)$_GET['item_id'] : 0;

if (!$itemId) {
    echo json_encode(['error' => 'معرف المنتج غير صحيح']);
    exit;
}

try {
    // 1. جلب معلومات عنصر الطلب الحالي
    $stmt = $pdo->prepare("
        SELECT oi.*, pv.product_id
        FROM order_items oi
        JOIN product_variants pv ON oi.product_variant_id = pv.id
        WHERE oi.id = ?
    ");
    $stmt->execute([$itemId]);
    $orderItem = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$orderItem) {
        echo json_encode(['error' => 'المنتج غير موجود']);
        exit;
    }

    $productId = $orderItem['product_id'];
    $currentAttributes = json_decode($orderItem['selected_attribute_value'], true) ?? [];

    // 2. جلب جميع الخصائص المتاحة للمنتج (مثل: اللون، المقاس) من جدول product_variants
    $stmt = $pdo->prepare("
        SELECT DISTINCT va.attribute_id, a.name as attribute_name, va.attribute_value, pv.stock
        FROM product_variants pv
        JOIN variant_attributes va ON pv.id = va.variant_id
        JOIN attributes a ON va.attribute_id = a.id
        WHERE pv.product_id = :product_id AND pv.stock > 0
        ORDER BY a.name, va.attribute_value
    ");
    $stmt->execute(['product_id' => $productId]);
    $availableVariants = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // 3. تنظيم البيانات: جعلها على شكل attribute_id => [قيم متاحة]
    $attributes = [];
    foreach ($availableVariants as $variant) {
        $attrId = $variant['attribute_id'];
        $attrName = $variant['attribute_name'];
        $attrValue = $variant['attribute_value'];
        if (!isset($attributes[$attrId])) {
            $attributes[$attrId] = [
                'name' => $attrName,
                'values' => []
            ];
        }
        // نضيف القيمة إذا لم تكن موجودة مسبقاً
        if (!in_array($attrValue, $attributes[$attrId]['values'])) {
            $attributes[$attrId]['values'][] = $attrValue;
        }
    }

    // 4. إرجاع البيانات كـ JSON
    echo json_encode([
        'success' => true,
        'order_item' => $orderItem,
        'current_attributes' => $currentAttributes,
        'available_attributes' => array_values($attributes) // array_values لتصفية المفاتيح
    ]);

} catch (PDOException $e) {
    echo json_encode(['error' => 'خطأ في قاعدة البيانات: ' . $e->getMessage()]);
}
?>