<?php
/**
 * get_order_details.php - جلب تفاصيل الطلب مع الأقسام ومعلومات الكابتن
 */

// بداية الملف - استدعاء الإعدادات الرئيسية
require_once 'config.php';

// التحقق من تسجيل الدخول باستخدام الدالة الجديدة isLoggedIn
if (!isLoggedIn()) {
    // إذا لم يكن مسجلاً، نعيد رسالة خطأ (لأن هذا طلب AJAX)
    header('HTTP/1.0 401 Unauthorized');
    echo '<div style="text-align: center; padding: 30px; color: var(--danger);">يجب تسجيل الدخول أولاً</div>';
    exit();
}

$order_id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$customer_id = $_SESSION['customer_id'];

if ($order_id <= 0) {
    echo '<div style="text-align: center; padding: 30px; color: var(--danger);">طلب غير صالح</div>';
    exit();
}

// جلب معلومات الطلب مع معلومات الكابتن
$order_sql = "SELECT o.*, d.discount_name, 
                     cp.name as captain_name, cp.phone as captain_phone
              FROM orders o 
              LEFT JOIN direct_discounts d ON o.discount_id = d.id 
              LEFT JOIN captains cp ON o.captain_id = cp.id 
              WHERE o.id = ? AND o.customer_id = ?";
$order_stmt = $conn->prepare($order_sql);
$order_stmt->bind_param("ii", $order_id, $customer_id);
$order_stmt->execute();
$order_result = $order_stmt->get_result();

if ($order_result->num_rows == 0) {
    echo '<div style="text-align: center; padding: 30px; color: var(--danger);">لا يمكن الوصول لهذا الطلب</div>';
    exit();
}

$order = $order_result->fetch_assoc();

// جلب عناصر الطلب مع الأقسام
$items_sql = "SELECT oi.*, 
                     m.name as meal_name, 
                     m.image,
                     m.has_portions,
                     m.price as meal_base_price,
                     mp.name as portion_name,
                     mp.price as portion_price
              FROM order_items oi
              LEFT JOIN meals m ON oi.meal_id = m.id
              LEFT JOIN meal_portions mp ON oi.portion_id = mp.id
              WHERE oi.order_id = ?
              ORDER BY oi.id ASC";
$items_stmt = $conn->prepare($items_sql);
$items_stmt->bind_param("i", $order_id);
$items_stmt->execute();
$items_result = $items_stmt->get_result();

// نص الحالة
$status_text = [
    'pending' => 'قيد الانتظار',
    'accepted' => 'تم القبول',
    'preparing' => 'جاري التجهيز',
    'ready' => 'جاهز',
    'on_the_way' => 'في الطريق',
    'delivered' => 'تم التوصيل',
    'cancelled' => 'ملغي'
][$order['status']] ?? $order['status'];

// لون الحالة
$status_color = [
    'pending' => '#FF9800',
    'accepted' => '#29B6F6',
    'preparing' => '#9C27B0',
    'ready' => '#4CAF50',
    'on_the_way' => '#9C27B0',
    'delivered' => '#4CAF50',
    'cancelled' => '#F44336'
][$order['status']] ?? '#78909C';

// أيقونة الحالة
$status_icon = [
    'pending' => 'bi-clock',
    'accepted' => 'bi-check-circle',
    'preparing' => 'bi-gear',
    'ready' => 'bi-bag-check',
    'on_the_way' => 'bi-truck',
    'delivered' => 'bi-check2-circle',
    'cancelled' => 'bi-x-circle'
][$order['status']] ?? 'bi-info-circle';

// تحديد نسبة التقدم
$progress_percentage = [
    'pending' => '20%',
    'accepted' => '40%',
    'preparing' => '60%',
    'ready' => '80%',
    'on_the_way' => '90%',
    'delivered' => '100%',
    'cancelled' => '0%'
][$order['status']] ?? '0%';

// دالة لتحديد لون القسم
function getPortionColor($portion_name) {
    $portion_name = trim($portion_name);
    $colors = [
        'ربع' => '#4CAF50',
        'نصف' => '#2196F3',
        'ثلاثة أرباع' => '#9C27B0',
        'كامل' => '#F57C00',
        'صغير' => '#FF9800',
        'وسط' => '#03A9F4',
        'كبير' => '#F44336',
        'عائلي' => '#8BC34A',
        'نفر' => '#9C27B0',
        'نص نفر' => '#673AB7'
    ];
    
    foreach ($colors as $key => $color) {
        if (strpos($portion_name, $key) !== false) {
            return $color;
        }
    }
    return '#F57C00';
}
?>

<style>
    /* تنسيقات متوافقة مع التصميم العام للموقع */
    .order-details-container { padding: 5px; }
    .order-info-header {
        background: var(--gray-light);
        border-radius: 15px;
        padding: 15px;
        margin-bottom: 20px;
    }
    .order-header-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 10px;
        flex-wrap: wrap;
        gap: 10px;
    }
    .order-id-badge {
        font-weight: 700;
        color: var(--primary);
        font-size: 1.1rem;
    }
    .order-date-badge {
        color: var(--gray);
        font-size: 0.9rem;
    }
    .status-display {
        margin: 15px 0;
        background: white;
        border-radius: 12px;
        padding: 12px;
    }
    .status-row {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 8px;
    }
    .status-icon {
        font-size: 1.3rem;
    }
    .status-text {
        font-weight: 700;
        font-size: 1rem;
    }
    .progress-bar {
        width: 100%;
        height: 8px;
        background: rgba(0,0,0,0.1);
        border-radius: 4px;
        overflow: hidden;
        margin: 10px 0;
    }
    .progress-fill {
        height: 100%;
        background: linear-gradient(90deg, var(--primary), var(--accent));
        border-radius: 4px;
        transition: width 0.3s ease;
    }
    .progress-steps {
        display: flex;
        justify-content: space-between;
        margin-top: 10px;
    }
    .step-item {
        text-align: center;
        font-size: 11px;
        color: var(--gray);
        flex: 1;
    }
    .step-item.active {
        color: var(--primary);
        font-weight: 600;
    }
    .step-item i {
        display: block;
        font-size: 1.2rem;
        margin-bottom: 3px;
    }
    .notes-section {
        background: white;
        border-radius: 10px;
        padding: 12px;
        margin-top: 10px;
    }
    .notes-title {
        display: flex;
        align-items: center;
        gap: 8px;
        color: var(--gray);
        font-size: 0.9rem;
        margin-bottom: 5px;
    }
    .notes-title i {
        color: var(--primary);
    }
    .notes-content {
        margin-top: 5px;
        padding-right: 32px;
        color: var(--dark);
    }
    .captain-card {
        background: var(--primary-soft);
        border-radius: 15px;
        padding: 15px;
        margin: 15px 0;
        display: flex;
        align-items: center;
        gap: 15px;
    }
    .captain-avatar {
        width: 50px;
        height: 50px;
        background: linear-gradient(135deg, var(--primary), var(--accent));
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        color: white;
        font-size: 1.5rem;
    }
    .captain-info {
        flex: 1;
    }
    .captain-name {
        font-weight: 700;
        color: var(--dark);
        margin-bottom: 3px;
    }
    .captain-phone {
        color: var(--primary);
        direction: ltr;
        display: flex;
        align-items: center;
        gap: 5px;
    }
    .captain-phone a {
        color: var(--primary);
        text-decoration: none;
    }
    .section-title {
        margin: 15px 0 12px;
        color: var(--dark);
        display: flex;
        align-items: center;
        gap: 8px;
    }
    .section-title i {
        color: var(--primary);
        font-size: 1.3rem;
    }
    .section-title span {
        flex: 1;
    }
    .items-count {
        background: var(--primary-soft);
        color: var(--primary);
        padding: 2px 10px;
        border-radius: 20px;
        font-size: 0.8rem;
    }
    .cart-item {
        background: white;
        border-radius: var(--radius-md);
        padding: 15px;
        margin-bottom: 15px;
        box-shadow: var(--shadow-sm);
        border: 1px solid var(--primary-light);
    }
    .cart-item-row {
        display: flex;
        gap: 15px;
    }
    .cart-item-image {
        width: 80px;
        height: 80px;
        border-radius: 15px;
        object-fit: cover;
        border: 2px solid var(--primary-light);
    }
    .cart-item-details {
        flex: 1;
    }
    .cart-item-title {
        font-size: 16px;
        font-weight: 700;
        margin-bottom: 5px;
        color: var(--dark);
    }
    .cart-item-price {
        color: var(--primary);
        font-weight: 700;
        font-size: 15px;
        margin-bottom: 5px;
    }
    .portion-badge {
        display: inline-flex;
        align-items: center;
        background: var(--primary-soft);
        color: var(--primary);
        padding: 4px 12px;
        border-radius: 20px;
        font-size: 12px;
        font-weight: 600;
        margin: 5px 0;
        border: 1px solid var(--primary-light);
    }
    .cart-item-controls {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-top: 10px;
    }
    .item-quantity {
        background: var(--primary-soft);
        color: var(--primary);
        padding: 4px 12px;
        border-radius: 20px;
        font-weight: 600;
    }
    .item-subtotal {
        font-weight: 700;
        color: var(--dark);
        font-size: 15px;
    }
    .original-price {
        font-size: 11px;
        color: var(--gray);
        margin-top: 5px;
    }
    .original-price span {
        text-decoration: line-through;
    }
    .summary-card {
        background: white;
        border-radius: var(--radius-md);
        padding: 20px;
        margin: 20px 0;
        box-shadow: var(--shadow-sm);
        border: 1px solid var(--primary-light);
    }
    .summary-row {
        display: flex;
        justify-content: space-between;
        padding: 12px 0;
        border-bottom: 1px solid var(--gray-light);
    }
    .summary-row.discount {
        color: var(--success);
    }
    .summary-row.total {
        border-bottom: none;
        font-weight: 800;
        font-size: 1.2rem;
        color: var(--primary);
    }
    .discount-badge {
        background: linear-gradient(135deg, var(--success), #2E7D32);
        color: white;
        padding: 4px 12px;
        border-radius: 20px;
        font-size: 11px;
        font-weight: 600;
        display: inline-flex;
        align-items: center;
        gap: 3px;
    }
    .reorder-btn {
        width: 100%;
        padding: 16px;
        background: linear-gradient(135deg, var(--primary), var(--accent));
        color: white;
        border: none;
        border-radius: 100px;
        font-weight: 700;
        font-size: 1.1rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        cursor: pointer;
        box-shadow: var(--shadow-md);
        margin-top: 20px;
        transition: all 0.2s ease;
    }
    .reorder-btn:active {
        transform: scale(0.98);
    }
    .reorder-btn i {
        font-size: 1.2rem;
    }
    .reorder-note {
        text-align: center;
        color: var(--gray);
        font-size: 0.8rem;
        margin-top: 8px;
    }
    hr {
        border: 1px solid var(--gray-light);
        margin: 15px 0;
    }
</style>

<div class="order-details-container">
    <!-- معلومات الطلب -->
    <div class="order-info-header">
        <div class="order-header-row">
            <span class="order-id-badge"><i class="bi bi-receipt"></i> طلب #<?= $order['id'] ?></span>
            <span class="order-date-badge"><i class="bi bi-calendar"></i> <?= date('Y/m/d h:i A', strtotime($order['created_at'])) ?></span>
        </div>
        
        <!-- معلومات الكابتن إذا كانت موجودة -->
        <?php if (!empty($order['captain_name'])): ?>
        <div class="captain-card">
            <div class="captain-avatar">
                <i class="bi bi-person-badge"></i>
            </div>
            <div class="captain-info">
                <div class="captain-name">الكابتن: <?= htmlspecialchars($order['captain_name']) ?></div>
                <div class="captain-phone">
                    <i class="bi bi-telephone"></i>
                    <a href="tel:<?= $order['captain_phone'] ?>"><?= $order['captain_phone'] ?></a>
                </div>
            </div>
        </div>
        <?php endif; ?>
        
        <!-- شريط تتبع الحالة -->
        <div class="status-display">
            <div class="status-row">
                <i class="bi <?= $status_icon ?> status-icon" style="color: <?= $status_color ?>;"></i>
                <span class="status-text" style="color: <?= $status_color ?>;"><?= $status_text ?></span>
            </div>
            
            <?php if ($order['status'] != 'cancelled' && $order['status'] != 'delivered'): ?>
            <div class="progress-bar">
                <div class="progress-fill" style="width: <?= $progress_percentage ?>;"></div>
            </div>
            
            <!-- خطوات التتبع -->
            <div class="progress-steps">
                <?php
                $steps = [
                    'pending' => ['icon' => 'bi-clock', 'label' => 'انتظار', 'active' => in_array($order['status'], ['pending', 'accepted', 'preparing', 'ready', 'on_the_way', 'delivered'])],
                    'accepted' => ['icon' => 'bi-check-circle', 'label' => 'قبول', 'active' => in_array($order['status'], ['accepted', 'preparing', 'ready', 'on_the_way', 'delivered'])],
                    'preparing' => ['icon' => 'bi-gear', 'label' => 'تجهيز', 'active' => in_array($order['status'], ['preparing', 'ready', 'on_the_way', 'delivered'])],
                    'on_the_way' => ['icon' => 'bi-truck', 'label' => 'توصيل', 'active' => in_array($order['status'], ['on_the_way', 'delivered'])]
                ];
                
                foreach ($steps as $key => $step):
                ?>
                <div class="step-item <?= $step['active'] ? 'active' : '' ?>">
                    <i class="bi <?= $step['icon'] ?>"></i>
                    <span><?= $step['label'] ?></span>
                </div>
                <?php endforeach; ?>
            </div>
            <?php endif; ?>
        </div>
        
        <!-- ملاحظات الطلب -->
        <?php if (!empty($order['notes'])): ?>
        <div class="notes-section">
            <div class="notes-title">
                <i class="bi bi-chat-left-text"></i>
                <span style="font-weight: 600;">ملاحظات:</span>
            </div>
            <p class="notes-content"><?= nl2br(htmlspecialchars($order['notes'])) ?></p>
        </div>
        <?php endif; ?>
    </div>
    
    <!-- عناصر الطلب -->
    <div class="section-title">
        <i class="bi bi-basket"></i>
        <span>عناصر الطلب</span>
        <span class="items-count"><?= $items_result->num_rows ?> عناصر</span>
    </div>
    
    <?php 
    $subtotal = 0;
    $items_result->data_seek(0);
    while ($item = $items_result->fetch_assoc()): 
        $item_total = $item['price'] * $item['quantity'];
        $subtotal += $item_total;
        
        // صورة المنتج
        $image_path = !empty($item['image']) ? '../../admin/uploads/' . $item['image'] : 'https://via.placeholder.com/80x80?text=Max';
        
        // التحقق من وجود قسم
        $has_portion = !empty($item['portion_name']) && $item['portion_name'] != 'كامل' && $item['portion_name'] != '';
        $portion_color = $has_portion ? getPortionColor($item['portion_name']) : '';
    ?>
    <div class="cart-item">
        <div class="cart-item-row">
            <img src="<?= $image_path ?>" class="cart-item-image" alt="<?= htmlspecialchars($item['meal_name'] ?? '') ?>">
            
            <div class="cart-item-details">
                <h3 class="cart-item-title"><?= htmlspecialchars($item['meal_name'] ?? '') ?></h3>
                <div class="cart-item-price"><?= number_format($item['price'] ?? 0, 2) ?> ريال</div>
                
                <!-- عرض القسم المحدد -->
                <?php if ($has_portion): ?>
                <div class="portion-badge" style="background: <?= $portion_color ?>20; color: <?= $portion_color ?>; border-color: <?= $portion_color ?>40;">
                    <i class="bi bi-tag"></i> <?= htmlspecialchars($item['portion_name']) ?>
                </div>
                <?php endif; ?>
                
                <div class="cart-item-controls">
                    <span class="item-quantity">
                        الكمية: <?= (int)($item['quantity'] ?? 1) ?>
                    </span>
                    <span class="item-subtotal">
                        <?= number_format($item_total, 2) ?> ريال
                    </span>
                </div>
                
                <!-- السعر الأصلي إذا كان مختلفاً -->
                <?php if ($has_portion && !empty($item['meal_base_price']) && $item['meal_base_price'] != $item['price']): ?>
                <div class="original-price">
                    السعر الأصلي: <span><?= number_format($item['meal_base_price'], 2) ?> ريال</span>
                </div>
                <?php endif; ?>
            </div>
        </div>
    </div>
    <?php endwhile; ?>
    
    <!-- ملخص الأسعار -->
    <div class="summary-card">
        <div class="summary-row">
            <span>مجموع المنتجات</span>
            <span><?= number_format($subtotal, 2) ?> ريال</span>
        </div>
        
        <div class="summary-row">
            <span>رسوم التوصيل</span>
            <span><?= number_format($order['delivery_fee'] ?? 10, 2) ?> ريال</span>
        </div>
        
        <?php if (!empty($order['discount_amount']) && $order['discount_amount'] > 0): ?>
        <div class="summary-row discount">
            <span>
                <i class="bi bi-tag"></i> 
                خصم <?= htmlspecialchars($order['discount_name'] ?? '') ?>:
            </span>
            <span>-<?= number_format($order['discount_amount'], 2) ?> ريال</span>
        </div>
        <?php endif; ?>
        
        <hr>
        
        <div class="summary-row total">
            <strong>الإجمالي الكلي</strong>
            <strong><?= number_format($order['total'], 2) ?> ريال</strong>
        </div>
    </div>
    
    <!-- زر إعادة الطلب (للمكتملة فقط) -->
    <?php if ($order['status'] == 'delivered'): ?>
    <button class="reorder-btn" onclick="reorderOrder(<?= $order['id'] ?>)">
        <i class="bi bi-arrow-repeat"></i> إعادة الطلب
    </button>
    <p class="reorder-note">
        <i class="bi bi-info-circle"></i>
        سيتم إضافة جميع العناصر مع الأقسام إلى السلة
    </p>
    <?php endif; ?>
</div>

<script>
// دالة إعادة الطلب (يمكن وضعها في الملف الرئيسي orders.php)
function reorderOrder(orderId) {
    fetch('reorder.php?id=' + orderId)
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                showToast(data.message, 'success');
                // تحديث عداد السلة في القائمة الجانبية
                setTimeout(() => location.reload(), 1500);
            } else {
                showToast(data.message, 'error');
            }
        })
        .catch(error => {
            console.error('Error:', error);
            showToast('حدث خطأ في إعادة الطلب', 'error');
        });
}

// دالة عرض التوست (إذا لم تكن موجودة)
function showToast(message, type = 'success') {
    const container = document.getElementById('toastContainer');
    if (!container) return;
    
    const toast = document.createElement('div');
    toast.className = `toast ${type}`;
    toast.innerHTML = `
        <div class="toast-icon"><i class="bi bi-${type === 'success' ? 'check-circle' : 'exclamation-circle'}"></i></div>
        <div class="toast-content">${message}</div>
    `;
    container.appendChild(toast);
    
    setTimeout(() => {
        toast.style.opacity = '0';
        setTimeout(() => toast.remove(), 300);
    }, 3000);
}
</script>