<?php
require_once __DIR__ . '/header.php';

// บังคับสิทธิ์ Admin เท่านั้น
if (!is_admin()) {
    header('Location: index.php');
    exit;
}

$message = '';
$message_type = '';

// ------------------------------------------------------------
// จัดการอัปเดตสถานะคำสั่งซื้อและข้อมูลการจัดส่ง
// ------------------------------------------------------------
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'update_shipping') {
    $order_id           = filter_input(INPUT_POST, 'order_id', FILTER_VALIDATE_INT);
    $status             = $_POST['status'] ?? 'pending';
    $carrier            = trim($_POST['carrier'] ?? '');
    $tracking_number    = trim($_POST['tracking_number'] ?? '');
    $shipping_date      = !empty($_POST['shipping_date']) ? $_POST['shipping_date'] : date('Y-m-d H:i:s');
    $estimated_delivery = !empty($_POST['estimated_delivery']) ? $_POST['estimated_delivery'] : null;

    if ($order_id) {
        $stmt = $pdo->prepare("
            UPDATE orders 
            SET status = ?, carrier = ?, tracking_number = ?, shipping_date = ?, estimated_delivery = ? 
            WHERE id = ?
        ");
        $stmt->execute([$status, $carrier, $tracking_number, $shipping_date, $estimated_delivery, $order_id]);
        
        $message = "อัปเดตสถานะและข้อมูลการจัดส่งคำสั่งซื้อ <strong>#ORDER-" . str_pad($order_id, 5, '0', STR_PAD_LEFT) . "</strong> สำเร็จ!";
        $message_type = "success";
    }
}

// ------------------------------------------------------------
// ตัวกรองสถานะคำสั่งซื้อ
// ------------------------------------------------------------
$status_filter = $_GET['status'] ?? '';
$where_sql = '';
$params = [];

if (in_array($status_filter, ['pending', 'shipping', 'delivered', 'cancelled'])) {
    $where_sql = 'WHERE o.status = ?';
    $params[] = $status_filter;
}

$stmt = $pdo->prepare("
    SELECT o.*, u.fullname, u.email 
    FROM orders o 
    JOIN users u ON o.user_id = u.id 
    {$where_sql} 
    ORDER BY o.id DESC
");
$stmt->execute($params);
$orders = $stmt->fetchAll();
?>

<div class="d-flex justify-content-between align-items-center mb-4 flex-wrap gap-2">
    <div>
        <h3 class="fw-bold mb-1"><i class="fa-solid fa-truck-ramp-box text-primary me-2"></i>จัดการคำสั่งซื้อและการจัดส่ง</h3>
        <p class="text-muted small mb-0">ระบุเลขพัสดุ วันจัดส่ง และวันที่คาดว่าสินค้าจะถึงผู้รับ</p>
    </div>
    
    <!-- Filter Buttons -->
    <div class="btn-group rounded-pill shadow-sm p-1 bg-white border">
        <a href="admin_orders.php" class="btn btn-sm rounded-pill <?= empty($status_filter) ? 'btn-primary' : 'btn-light' ?>">ทั้งหมด</a>
        <a href="admin_orders.php?status=pending" class="btn btn-sm rounded-pill <?= $status_filter === 'pending' ? 'btn-warning text-dark' : 'btn-light' ?>">รอส่ง</a>
        <a href="admin_orders.php?status=shipping" class="btn btn-sm rounded-pill <?= $status_filter === 'shipping' ? 'btn-info text-white' : 'btn-light' ?>">กำลังส่ง</a>
        <a href="admin_orders.php?status=delivered" class="btn btn-sm rounded-pill <?= $status_filter === 'delivered' ? 'btn-success' : 'btn-light' ?>">สำเร็จ</a>
    </div>
</div>

<?php if (!empty($message)): ?>
    <div class="alert alert-<?= $message_type ?> alert-dismissible fade show rounded-3 mb-4" role="alert">
        <i class="fa-solid fa-circle-check me-2"></i> <?= $message ?>
        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
    </div>
<?php endif; ?>

<div class="card border-0 shadow-sm rounded-4 overflow-hidden">
    <div class="card-body p-0">
        <div class="table-responsive">
            <table class="table align-middle table-hover mb-0">
                <thead class="table-light">
                    <tr>
                        <th class="ps-4">Order ID / วันที่</th>
                        <th>ผู้ซื้อ</th>
                        <th>ยอดรวม</th>
                        <th>สถานะ</th>
                        <th>บริษัทขนส่ง / เลขพัสดุ</th>
                        <th>วันจัดส่ง / คาดว่าถึง</th>
                        <th class="text-center pe-4">การจัดการ</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if (empty($orders)): ?>
                        <tr><td colspan="7" class="text-center py-4 text-muted">ไม่พบรายการคำสั่งซื้อ</td></tr>
                    <?php else: ?>
                        <?php foreach ($orders as $ord): ?>
                            <tr>
                                <td class="ps-4">
                                    <span class="fw-bold text-primary d-block">#ORDER-<?= str_pad($ord['id'], 5, '0', STR_PAD_LEFT) ?></span>
                                    <small class="text-muted"><?= date('d/m/Y H:i', strtotime($ord['created_at'])) ?></small>
                                </td>
                                <td>
                                    <span class="fw-semibold text-dark d-block"><?= htmlspecialchars($ord['fullname']) ?></span>
                                    <small class="text-muted"><?= htmlspecialchars($ord['email']) ?></small>
                                </td>
                                <td class="fw-bold text-primary"><?= format_price($ord['total_price']) ?></td>
                                <td><?= render_order_status_badge($ord['status']) ?></td>
                                <td>
                                    <?php if ($ord['tracking_number']): ?>
                                        <span class="badge bg-light text-dark border d-block text-start mb-1">
                                            <i class="fa-solid fa-truck text-muted me-1"></i> <?= htmlspecialchars($ord['carrier'] ?? 'ไม่ระบุ') ?>
                                        </span>
                                        <code class="fw-bold text-dark"><?= htmlspecialchars($ord['tracking_number']) ?></code>
                                    <?php else: ?>
                                        <span class="text-muted small">- ยังไม่ระบุ -</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($ord['shipping_date']): ?>
                                        <small class="d-block text-muted">ส่ง: <?= date('d/m/Y', strtotime($ord['shipping_date'])) ?></small>
                                    <?php endif; ?>
                                    <?php if ($ord['estimated_delivery']): ?>
                                        <small class="d-block text-success fw-semibold"><i class="fa-solid fa-calendar-check me-1"></i>ถึง: <?= date('d/m/Y', strtotime($ord['estimated_delivery'])) ?></small>
                                    <?php else: ?>
                                        <small class="text-muted">-</small>
                                    <?php endif; ?>
                                </td>
                                <td class="text-center pe-4">
                                    <div class="d-flex gap-1 justify-content-center">
                                        <!-- ปุ่มแก้ไขสถานะการส่ง -->
                                        <button class="btn btn-sm btn-outline-primary rounded-pill px-3" data-bs-toggle="modal" data-bs-target="#shipModal<?= $ord['id'] ?>">
                                            <i class="fa-solid fa-truck-fast me-1"></i> อัปเดตจัดส่ง
                                        </button>

                                        <!-- ปุ่มเปิดแชทกับผู้ซื้อ -->
                                        <a href="chat.php?order_id=<?= $ord['id'] ?>&user_id=<?= $ord['user_id'] ?>" class="btn btn-sm btn-outline-success rounded-circle" style="width: 32px; height: 32px;" title="แชทกับผู้ซื้อ">
                                            <i class="fa-solid fa-comments"></i>
                                        </a>
                                    </div>
                                </td>
                            </tr>

                            <!-- Modal สำหรับอัปเดตการจัดส่ง Order <?= $ord['id'] ?> -->
                            <div class="modal fade" id="shipModal<?= $ord['id'] ?>" tabindex="-1">
                                <div class="modal-dialog modal-dialog-centered">
                                    <div class="modal-content rounded-4 border-0">
                                        <form method="POST" action="admin_orders.php">
                                            <input type="hidden" name="action" value="update_shipping">
                                            <input type="hidden" name="order_id" value="<?= $ord['id'] ?>">

                                            <div class="modal-header bg-primary text-white rounded-top-4">
                                                <h5 class="modal-title fw-bold">
                                                    <i class="fa-solid fa-box-open me-2"></i>อัปเดตการจัดส่ง #ORDER-<?= str_pad($ord['id'], 5, '0', STR_PAD_LEFT) ?>
                                                </h5>
                                                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
                                            </div>

                                            <div class="modal-body p-4">
                                                <!-- สถานะ -->
                                                <div class="mb-3">
                                                    <label class="form-label fw-medium">สถานะคำสั่งซื้อ</label>
                                                    <select name="status" class="form-select" required>
                                                        <option value="pending" <?= $ord['status'] === 'pending' ? 'selected' : '' ?>>⏳ รอจัดส่ง (Pending)</option>
                                                        <option value="shipping" <?= $ord['status'] === 'shipping' ? 'selected' : '' ?>>🚚 กำลังจัดส่ง (Shipping)</option>
                                                        <option value="delivered" <?= $ord['status'] === 'delivered' ? 'selected' : '' ?>>✅ จัดส่งสำเร็จ (Delivered)</option>
                                                        <option value="cancelled" <?= $ord['status'] === 'cancelled' ? 'selected' : '' ?>>❌ ยกเลิกคำสั่งซื้อ (Cancelled)</option>
                                                    </select>
                                                </div>

                                                <!-- บริษัทขนส่ง -->
                                                <div class="mb-3">
                                                    <label class="form-label fw-medium">บริษัทขนส่ง (Carrier)</label>
                                                    <input type="text" name="carrier" class="form-control" placeholder="เช่น Flash Express, ไปรษณีย์ไทย, Kerry" value="<?= htmlspecialchars($ord['carrier'] ?? 'Flash Express') ?>">
                                                </div>

                                                <!-- หมายเลขพัสดุ -->
                                                <div class="mb-3">
                                                    <label class="form-label fw-medium">เลขพัสดุติดตาม (Tracking Number)</label>
                                                    <input type="text" name="tracking_number" class="form-control" placeholder="เช่น TH1234567890" value="<?= htmlspecialchars($ord['tracking_number'] ?? '') ?>">
                                                </div>

                                                <div class="row g-2">
                                                    <!-- วันที่จัดส่ง -->
                                                    <div class="col-6 mb-3">
                                                        <label class="form-label fw-medium">วันที่จัดส่ง</label>
                                                        <input type="datetime-local" name="shipping_date" class="form-control" value="<?= $ord['shipping_date'] ? date('Y-m-d\TH:i', strtotime($ord['shipping_date'])) : date('Y-m-d\TH:i') ?>">
                                                    </div>

                                                    <!-- วันที่คาดว่าสินค้าจะถึงผู้รับ -->
                                                    <div class="col-6 mb-3">
                                                        <label class="form-label fw-medium">วันที่คาดว่าจะถึงผู้รับ</label>
                                                        <input type="date" name="estimated_delivery" class="form-control" value="<?= $ord['estimated_delivery'] ? $ord['estimated_delivery'] : date('Y-m-d', strtotime('+2 days')) ?>">
                                                    </div>
                                                </div>
                                            </div>

                                            <div class="modal-footer">
                                                <button type="button" class="btn btn-light rounded-pill px-3" data-bs-dismiss="modal">ยกเลิก</button>
                                                <button type="submit" class="btn btn-primary-custom rounded-pill px-4">บันทึกข้อมูลจัดส่ง</button>
                                            </div>
                                        </form>
                                    </div>
                                </div>
                            </div>
                        <?php endforeach; ?>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<?php require_once __DIR__ . '/footer.php'; ?>
