<?php
session_start();
require_once 'includes/config.php';

// Migration script should handle schema; runtime-create fallback removed.

if (!isset($_SESSION['nguoi_dung_id']) || $_SESSION['vai_tro'] !== 'admin') {
    die('<h2 style="color:red; text-align:center; padding:50px;">TRUY CẬP BỊ TỪ CHỐI!</h2>');
}

$thong_bao = '';

function getTrangThaiSuKienLabel($status) {
    $map = [
        'dang_mo' => ['🟢 Đang nhận ứng tuyển', 'dang_mo'],
        'da_chot' => ['🟡 Đã chốt người', 'da_chot'],
        'hoan_thanh' => ['✅ Hoàn thành', 'hoan_thanh'],
        'da_giai_ngan' => ['💸 Đã giải ngân', 'da_giai_ngan'],
    ];
    return $map[$status] ?? ['⚪ Chưa xác định', 'other'];
}

function getTrangThaiUngTuyenLabel($status) {
    $map = [
        'cho_duyet' => '⏳ Chờ duyệt',
        'chinh_thuc' => '✅ Chính thức',
        'du_bi' => '🟡 Dự bị',
        'tu_choi' => '❌ Từ chối',
        'da_giai_ngan' => '💸 Đã giải ngân',
    ];
    return $map[$status] ?? '—';
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['promote_du_bi'])) {
        $id_promote = (int)($_POST['id_ung_tuyen'] ?? 0);
        if ($id_promote > 0) {
            $stmt_get = $pdo->prepare('SELECT id, su_kien_id, trang_thai FROM ung_tuyen_su_kien WHERE id = ? LIMIT 1');
            $stmt_get->execute([$id_promote]);
            $rowp = $stmt_get->fetch();
            if ($rowp && $rowp['trang_thai'] === 'du_bi') {
                $skid = (int)$rowp['su_kien_id'];
                try {
                    $pdo->beginTransaction();
                    $stmt_slot = $pdo->prepare('SELECT so_luong_nhan_su FROM su_kien WHERE id = ? FOR UPDATE');
                    $stmt_slot->execute([$skid]);
                    $sk_row = $stmt_slot->fetch();
                    $slots = $sk_row ? (int)$sk_row['so_luong_nhan_su'] : 0;
                    if ($slots <= 0) {
                        $pdo->rollBack();
                        $thong_bao = '<div style="background:#fff3cd;color:#856404;padding:10px;border-radius:6px;margin-bottom:15px;">Không có chỗ trống để chốt ứng viên.</div>';
                    } else {
                        $pdo->prepare('UPDATE su_kien SET so_luong_nhan_su = so_luong_nhan_su - 1 WHERE id = ?')->execute([$skid]);
                        $pdo->prepare('UPDATE ung_tuyen_su_kien SET trang_thai = "chinh_thuc", ngay_cap_nhat = NOW() WHERE id = ?')->execute([$id_promote]);
                        $stmt_hist = $pdo->prepare('INSERT INTO lich_su_ung_tuyen (su_kien_id, hanh_dong, noi_dung, nguoi_thuc_hien) VALUES (?, ?, ?, ?)');
                        $stmt_hist->execute([$skid, 'admin_promote', 'Admin #' . ($_SESSION['nguoi_dung_id'] ?? 0) . ' đã chốt ứng viên id ' . $id_promote, $_SESSION['nguoi_dung_id'] ?? null]);
                        $pdo->commit();
                        $thong_bao = '<div style="background:#d4edda;color:#155724;padding:10px;border-radius:6px;margin-bottom:15px;">Đã chốt ứng viên từ danh sách dự bị.</div>';
                    }
                } catch (Throwable $e) {
                    if ($pdo->inTransaction()) $pdo->rollBack();
                    $thong_bao = '<div style="background:#f8d7da;color:#721c24;padding:10px;border-radius:6px;margin-bottom:15px;">Lỗi khi chốt ứng viên, thử lại.</div>';
                }
            }
        }
    }
    // Tạo sự kiện đã được chuyển sang `phan-bo-su-kien.php` để tránh trùng lặp.

    if (isset($_POST['cap_nhat_ung_tuyen'])) {
        $id_ung_tuyen = (int)($_POST['id_ung_tuyen'] ?? 0);
        $trang_thai_moi = $_POST['trang_thai'] ?? 'cho_duyet';

        // Load current application and associated event
        $stmt_app = $pdo->prepare('SELECT id, su_kien_id, trang_thai FROM ung_tuyen_su_kien WHERE id = ? LIMIT 1');
        $stmt_app->execute([$id_ung_tuyen]);
        $app_curr = $stmt_app->fetch();

        if ($app_curr) {
            $trang_thai_cu = $app_curr['trang_thai'];
            $su_kien_id = (int)$app_curr['su_kien_id'];

            try {
                $pdo->beginTransaction();

                // If approving to official and previously not official, consume a slot
                if ($trang_thai_moi === 'chinh_thuc' && $trang_thai_cu !== 'chinh_thuc') {
                    $stmt_slot = $pdo->prepare('SELECT so_luong_nhan_su FROM su_kien WHERE id = ? FOR UPDATE');
                    $stmt_slot->execute([$su_kien_id]);
                    $sk_row = $stmt_slot->fetch();
                    $slots = $sk_row ? (int)$sk_row['so_luong_nhan_su'] : 0;

                    if ($slots <= 0) {
                        $pdo->rollBack();
                        $thong_bao = '<div style="background:#f8d7da;color:#721c24;padding:10px;border-radius:6px;margin-bottom:15px;">Không thể chốt thành viên: đã đủ số lượng yêu cầu.</div>';
                    } else {
                        $pdo->prepare('UPDATE su_kien SET so_luong_nhan_su = so_luong_nhan_su - 1 WHERE id = ?')->execute([$su_kien_id]);
                        $pdo->prepare('UPDATE ung_tuyen_su_kien SET trang_thai = ?, ngay_cap_nhat = NOW() WHERE id = ?')->execute([$trang_thai_moi, $id_ung_tuyen]);
                        // record history: admin approved
                        $stmt_hist = $pdo->prepare('INSERT INTO lich_su_ung_tuyen (su_kien_id, hanh_dong, noi_dung, nguoi_thuc_hien) VALUES (?, ?, ?, ?)');
                        $stmt_hist->execute([$su_kien_id, 'admin_chot', 'Admin #' . ($_SESSION['nguoi_dung_id'] ?? 0) . ' chốt ứng viên id ' . $id_ung_tuyen, $_SESSION['nguoi_dung_id'] ?? null]);
                        $pdo->commit();
                        $thong_bao = '<div style="background:#d4edda;color:#155724;padding:10px;border-radius:6px;margin-bottom:15px;">Đã cập nhật trạng thái ứng tuyển và giảm số lượng còn lại.</div>';
                    }


                // If demoting from official to other, release a slot and try to promote waiting-list
                } elseif ($trang_thai_cu === 'chinh_thuc' && $trang_thai_moi !== 'chinh_thuc') {
                    // lock event row
                    $stmt_slot = $pdo->prepare('SELECT so_luong_nhan_su FROM su_kien WHERE id = ? FOR UPDATE');
                    $stmt_slot->execute([$su_kien_id]);
                    $sk_row = $stmt_slot->fetch();
                    $slots = $sk_row ? (int)$sk_row['so_luong_nhan_su'] : 0;

                    // free one slot
                    $slots = $slots + 1;
                    $pdo->prepare('UPDATE su_kien SET so_luong_nhan_su = ? WHERE id = ?')->execute([$slots, $su_kien_id]);
                    $pdo->prepare('UPDATE ung_tuyen_su_kien SET trang_thai = ?, ngay_cap_nhat = NOW() WHERE id = ?')->execute([$trang_thai_moi, $id_ung_tuyen]);
                    // record history: admin demoted this applicant
                    $stmt_hist = $pdo->prepare('INSERT INTO lich_su_ung_tuyen (su_kien_id, hanh_dong, noi_dung, nguoi_thuc_hien) VALUES (?, ?, ?, ?)');
                    $stmt_hist->execute([$su_kien_id, 'admin_thu_hoi', 'Admin #' . ($_SESSION['nguoi_dung_id'] ?? 0) . ' thu hồi ứng viên id ' . $id_ung_tuyen, $_SESSION['nguoi_dung_id'] ?? null]);

                    // Promote from waiting list while slots available
                    $promoted = 0;
                        while ($slots > 0) {
                        $stmt_wait = $pdo->prepare('SELECT id FROM ung_tuyen_su_kien WHERE su_kien_id = ? AND trang_thai = "du_bi" ORDER BY ngay_ung_tuyen ASC LIMIT 1 FOR UPDATE');
                        $stmt_wait->execute([$su_kien_id]);
                        $wait = $stmt_wait->fetch();
                        if (!$wait) break;
                        // promote this waiting applicant
                        $pdo->prepare('UPDATE ung_tuyen_su_kien SET trang_thai = "chinh_thuc", ngay_cap_nhat = NOW() WHERE id = ?')->execute([$wait['id']]);
                        // history for auto-promote
                        $stmt_hist = $pdo->prepare('INSERT INTO lich_su_ung_tuyen (su_kien_id, hanh_dong, noi_dung, nguoi_thuc_hien) VALUES (?, ?, ?, NULL)');
                        $stmt_hist->execute([$su_kien_id, 'auto_promote', 'Tự động chốt ứng viên id ' . $wait['id']]);
                        $promoted++;
                        $slots--;
                    }

                    // save remaining slots
                    $pdo->prepare('UPDATE su_kien SET so_luong_nhan_su = ? WHERE id = ?')->execute([$slots, $su_kien_id]);
                    $pdo->commit();
                    $thong_bao = '<div style="background:#d4edda;color:#155724;padding:10px;border-radius:6px;margin-bottom:15px;">Đã cập nhật trạng thái ứng tuyển, trả lại 1 vị trí.' . ($promoted ? " (Đã tự động chốt {$promoted} ứng viên từ danh sách dự bị)" : '') . '</div>';

                // Otherwise just update status
                } else {
                    $pdo->prepare('UPDATE ung_tuyen_su_kien SET trang_thai = ?, ngay_cap_nhat = NOW() WHERE id = ?')->execute([$trang_thai_moi, $id_ung_tuyen]);
                    $pdo->commit();
                    $thong_bao = '<div style="background:#d4edda;color:#155724;padding:10px;border-radius:6px;margin-bottom:15px;">Đã cập nhật trạng thái ứng tuyển.</div>';
                }
            } catch (Throwable $e) {
                if ($pdo->inTransaction()) $pdo->rollBack();
                $thong_bao = '<div style="background:#f8d7da;color:#721c24;padding:10px;border-radius:6px;margin-bottom:15px;">Lỗi khi cập nhật trạng thái. Vui lòng thử lại.</div>';
            }
            // redirect back to admin page focused on this event so displayed data refreshes
            $redir_id = isset($su_kien_id) ? (int)$su_kien_id : (int)($_POST['su_kien_id'] ?? 0);
            header('Location: quan-ly-ung-tuyen.php?su_kien_id=' . $redir_id);
            exit;
        }
    }

    if (isset($_POST['cap_nhat_su_kien'])) {
        $su_kien_id = (int)($_POST['su_kien_id'] ?? 0);
        $trang_thai_su_kien = $_POST['trang_thai_su_kien'] ?? 'dang_mo';
        $stmt = $pdo->prepare('UPDATE su_kien SET trang_thai = ? WHERE id = ?');
        $stmt->execute([$trang_thai_su_kien, $su_kien_id]);
        $thong_bao = '<div style="background:#d4edda;color:#155724;padding:10px;border-radius:6px;margin-bottom:15px;">Đã cập nhật tiến trình sự kiện.</div>';
    }

    if (isset($_POST['danh_dau_hoan_thanh'])) {
        $su_kien_id = (int)($_POST['su_kien_id'] ?? 0);
        $stmt = $pdo->prepare('UPDATE su_kien SET trang_thai = "hoan_thanh" WHERE id = ?');
        $stmt->execute([$su_kien_id]);
        $thong_bao = '<div style="background:#d4edda;color:#155724;padding:10px;border-radius:6px;margin-bottom:15px;">Sự kiện đã được đánh dấu hoàn thành, có thể giải ngân.</div>';
    }

    if (isset($_POST['giai_ngan'])) {
        $id_ung_tuyen = (int)($_POST['id_ung_tuyen'] ?? 0);
        $so_tien = (float)($_POST['so_tien'] ?? 0);
        $stmt_app = $pdo->prepare('SELECT u.thanh_vien_id, s.ten_su_kien, s.thu_lao_du_kien FROM ung_tuyen_su_kien u JOIN su_kien s ON s.id = u.su_kien_id WHERE u.id = ? LIMIT 1');
        $stmt_app->execute([$id_ung_tuyen]);
        $app = $stmt_app->fetch();
        if ($app) {
            $tien_thanh_toan = $so_tien > 0 ? $so_tien : (float)$app['thu_lao_du_kien'];
            try {
                $pdo->beginTransaction();
                $pdo->prepare('INSERT INTO vi_thanh_vien (thanh_vien_id, so_du) VALUES (?, 0) ON DUPLICATE KEY UPDATE thanh_vien_id = thanh_vien_id')->execute([$app['thanh_vien_id']]);
                $pdo->prepare('UPDATE vi_thanh_vien SET so_du = so_du + ? WHERE thanh_vien_id = ?')->execute([$tien_thanh_toan, $app['thanh_vien_id']]);
                $pdo->prepare('INSERT INTO giao_dich_tai_chinh (id_nguoi_nhan, so_tien, loai_giao_dich, trang_thai, ghi_chu) VALUES (?, ?, "thu_lao", "da_chuyen", ?)')->execute([$app['thanh_vien_id'], $tien_thanh_toan, 'Giải ngân cho ' . $app['ten_su_kien']]);
                $pdo->prepare('UPDATE ung_tuyen_su_kien SET trang_thai = "da_giai_ngan", ngay_cap_nhat = NOW() WHERE id = ?')->execute([$id_ung_tuyen]);
                $pdo->commit();
                $thong_bao = '<div style="background:#d4edda;color:#155724;padding:10px;border-radius:6px;margin-bottom:15px;">Đã giải ngân và cập nhật số dư ví thành viên.</div>';
            } catch (Throwable $e) {
                if ($pdo->inTransaction()) {
                    $pdo->rollBack();
                }
                $thong_bao = '<div style="background:#f8d7da;color:#721c24;padding:10px;border-radius:6px;margin-bottom:15px;">Không thể giải ngân. Vui lòng thử lại.</div>';
            }
        }
    }
}

$danhsach_su_kien = $pdo->query('SELECT * FROM su_kien ORDER BY ngay_dien_ra DESC')->fetchAll();
$su_kien_id_focus = isset($_GET['su_kien_id']) ? (int)$_GET['su_kien_id'] : 0;
?>
<!DOCTYPE html>
<html lang="vi">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Quản lý luồng sự kiện</title>
    <link rel="stylesheet" href="includes/admin-style.css">
    <style>
        body { margin:0; font-family:Arial,sans-serif; background:#f5f7fb; color:#243447; }
        .card { background:#fff; border-radius:14px; padding:16px; box-shadow:0 3px 12px rgba(0,0,0,.06); margin-bottom:16px; }
        .card.focus-card { border:2px solid #0d6efd; box-shadow:0 0 0 3px rgba(13,110,253,.15); }
        .hero { background:linear-gradient(135deg,#0b5ed7,#0f6cd9); color:#fff; border-radius:14px; padding:18px; margin-bottom:16px; }
        .step-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:12px; }
        .step-box { background:rgba(255,255,255,.16); padding:10px 12px; border-radius:10px; }
        .step-box strong { display:block; margin-bottom:4px; }
        .workflow-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:12px; }
        .workflow-box { border:1px solid #e8edf4; border-radius:12px; padding:12px; background:#fcfdff; }
        .btn { padding:8px 10px; border:none; border-radius:8px; background:#0056b3; color:#fff; cursor:pointer; }
        .btn.success { background:#28a745; }
        .btn.warning { background:#fd7e14; }
        .badge { display:inline-block; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:bold; }
        .badge.dang_mo { background:#d4edda; color:#155724; }
        .badge.da_chot { background:#fff3cd; color:#856404; }
        .badge.hoan_thanh { background:#cce5ff; color:#004085; }
        .badge.da_giai_ngan { background:#e2e3e5; color:#383d41; }
        table { width:100%; border-collapse:collapse; margin-top:8px; }
        th, td { border-bottom:1px solid #eee; padding:8px 6px; text-align:left; font-size:14px; }
        .small { font-size:13px; color:#666; }
        input, select, textarea { width:100%; box-sizing:border-box; padding:8px; border:1px solid #dfe5ee; border-radius:8px; }
        .row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
        @media (max-width: 900px) { .step-grid, .workflow-grid { grid-template-columns:1fr; } }
    </style>
</head>
<body>
    <?php require_once 'includes/menu-admin.php'; ?>
    <div class="khu-vuc-du-lieu">
        <div class="thanh-tren">🧑‍🤝‍🧑 Quản lý luồng sự kiện</div>
        <div class="noi-dung-chinh">
            <?php echo $thong_bao; ?>

            <div class="hero">
                <h2 style="margin:0 0 8px;">Luồng vận hành sự kiện theo 4 bước</h2>
                <div class="small" style="color:rgba(255,255,255,.9);">Từ khi tạo sự kiện cho đến khi giải ngân cho thành viên, admin theo dõi toàn bộ quy trình ở một nơi.</div>
                <div class="step-grid">
                    <div class="step-box"><strong>1. Tạo sự kiện</strong><span>Khởi tạo yêu cầu và mở nhận ứng tuyển.</span></div>
                    <div class="step-box"><strong>2. Chốt người</strong><span>Chọn người chính thức / dự bị / từ chối.</span></div>
                    <div class="step-box"><strong>3. Hoàn thành</strong><span>Đánh dấu sự kiện đã diễn ra xong.</span></div>
                    <div class="step-box"><strong>4. Giải ngân</strong><span>Chuyển tiền cho người tham gia chính thức.</span></div>
                </div>
            </div>

            <div class="card">
                <h3 style="margin-top:0;">1. Tạo sự kiện mới</h3>
                <div class="small" style="margin-bottom:8px;">Việc tạo / chỉnh sửa nội dung sự kiện đã được chuyển sang trang quản lý phân bổ.</div>
                <a href="phan-bo-su-kien.php" class="btn success" style="text-decoration:none; display:inline-block;">➕ Mở trang Tạo / Chỉnh sửa sự kiện</a>
            </div>

            <?php foreach ($danhsach_su_kien as $sk): ?>
                <?php $statusInfo = getTrangThaiSuKienLabel($sk['trang_thai']); ?>
                <?php $isFocus = $su_kien_id_focus > 0 && (int)$sk['id'] === $su_kien_id_focus; ?>
                <div class="card<?php echo $isFocus ? ' focus-card' : ''; ?>">
                    <div class="row" style="justify-content:space-between; align-items:flex-start;">
                        <div>
                            <h3 style="margin:0 0 6px;"><?php echo htmlspecialchars($sk['ten_su_kien']); ?></h3>
                            <div class="small">📅 <?php echo date('d/m/Y H:i', strtotime($sk['ngay_dien_ra'])); ?> · 💰 <?php echo number_format($sk['thu_lao_du_kien'], 0, ',', '.'); ?> ₫ · 👥 Cần <?php echo (int)$sk['so_luong_nhan_su']; ?> người</div>
                        </div>
                        <span class="badge <?php echo $statusInfo[1]; ?>"><?php echo $statusInfo[0]; ?></span>
                    </div>

                    <div class="workflow-grid">
                        <div class="workflow-box">
                            <h4 style="margin-top:0;">1. Mở nhận ứng tuyển</h4>
                            <form method="POST" class="row">
                                <input type="hidden" name="su_kien_id" value="<?php echo (int)$sk['id']; ?>">
                                <select name="trang_thai_su_kien">
                                    <option value="dang_mo" <?php echo $sk['trang_thai'] === 'dang_mo' ? 'selected' : ''; ?>>Mở nhận ứng tuyển</option>
                                    <option value="da_chot" <?php echo $sk['trang_thai'] === 'da_chot' ? 'selected' : ''; ?>>Chốt người</option>
                                    <option value="hoan_thanh" <?php echo $sk['trang_thai'] === 'hoan_thanh' ? 'selected' : ''; ?>>Đánh dấu hoàn thành</option>
                                </select>
                                <button type="submit" name="cap_nhat_su_kien" class="btn">Áp dụng</button>
                            </form>
                        </div>

                        <div class="workflow-box" style="grid-column: 1 / -1;">
                            <h4 style="margin-top:0;">2. Chốt người</h4>
                            <?php
                            $stmt_app = $pdo->prepare('SELECT u.*, tv.ho_ten, tv.email, tv.dien_thoai, tv.id AS thanh_vien_id, tv.anh_dai_dien FROM ung_tuyen_su_kien u JOIN thanh_vien tv ON tv.id = u.thanh_vien_id WHERE u.su_kien_id = ?');
                            $stmt_app->execute([$sk['id']]);
                            $applications = $stmt_app->fetchAll();

                            // sort by status then apply date
                            $order = ['chinh_thuc' => 0, 'du_bi' => 1, 'cho_duyet' => 2, 'tu_choi' => 3];
                            usort($applications, function($a, $b) use ($order) {
                                $sa = $a['trang_thai'] ?? 'cho_duyet';
                                $sb = $b['trang_thai'] ?? 'cho_duyet';
                                $oa = $order[$sa] ?? 99;
                                $ob = $order[$sb] ?? 99;
                                if ($oa === $ob) return strcmp($a['ngay_ung_tuyen'], $b['ngay_ung_tuyen']);
                                return $oa - $ob;
                            });
                            ?>

                            <table>
                                <thead>
                                    <tr>
                                        <th>Ứng viên</th>
                                        <th>Liên hệ</th>
                                        <th>Ghi chú</th>
                                        <th>Trạng thái</th>
                                        <th>Hành động</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php if (count($applications) === 0): ?>
                                        <tr><td colspan="5" class="small">Chưa có ai ứng tuyển.</td></tr>
                                    <?php endif; ?>
                                    <?php foreach ($applications as $app): ?>
                                        <tr>
                                            <td style="vertical-align:top;">
                                                <div style="display:flex;gap:8px;align-items:center;">
                                                    <img src="<?php echo !empty($app['anh_dai_dien'] ?? '') ? htmlspecialchars($app['anh_dai_dien']) : 'uploads/avatars/default.png'; ?>" alt="avatar" style="width:44px;height:44px;border-radius:6px;object-fit:cover;border:1px solid #e6eef6;">
                                                    <div>
                                                        <a href="quan-ly-thanh-vien.php?xem_id=<?php echo (int)$app['thanh_vien_id']; ?>" style="font-weight:bold;text-decoration:none;color:#0d6efd;"><?php echo htmlspecialchars($app['ho_ten']); ?></a>
                                                        <div class="small">Đăng ký: <?php echo date('d/m H:i', strtotime($app['ngay_ung_tuyen'])); ?></div>
                                                    </div>
                                                </div>
                                            </td>
                                            <td style="vertical-align:top;">
                                                <?php if (!empty($app['dien_thoai'])): ?><div><a href="tel:<?php echo htmlspecialchars($app['dien_thoai']); ?>">📞 <?php echo htmlspecialchars($app['dien_thoai']); ?></a></div><?php endif; ?>
                                                <?php if (!empty($app['email'])): ?><div><a href="mailto:<?php echo htmlspecialchars($app['email']); ?>">✉️ <?php echo htmlspecialchars($app['email']); ?></a></div><?php endif; ?>
                                            </td>
                                            <td style="vertical-align:top;"><?php echo htmlspecialchars($app['ghi_chu'] ?? ''); ?></td>
                                            <td style="vertical-align:top;"><span class="small"><?php echo getTrangThaiUngTuyenLabel($app['trang_thai'] ?? 'cho_duyet'); ?></span></td>
                                            <td style="vertical-align:top;">
                                                <div style="display:flex;gap:8px;flex-wrap:nowrap;align-items:center;">
                                                    <form method="POST" style="display:flex;gap:6px;align-items:center;">
                                                        <input type="hidden" name="id_ung_tuyen" value="<?php echo (int)$app['id']; ?>">
                                                        <select name="trang_thai">
                                                            <option value="cho_duyet" <?php echo ($app['trang_thai'] ?? '') === 'cho_duyet' ? 'selected' : ''; ?>>Chờ duyệt</option>
                                                            <option value="chinh_thuc" <?php echo ($app['trang_thai'] ?? '') === 'chinh_thuc' ? 'selected' : ''; ?>>Chính thức</option>
                                                            <option value="du_bi" <?php echo ($app['trang_thai'] ?? '') === 'du_bi' ? 'selected' : ''; ?>>Dự bị</option>
                                                            <option value="tu_choi" <?php echo ($app['trang_thai'] ?? '') === 'tu_choi' ? 'selected' : ''; ?>>Từ chối</option>
                                                        </select>
                                                        <?php $btn_label = ($app['trang_thai'] === 'chinh_thuc') ? 'Điều Chỉnh' : 'Lưu'; ?>
                                                        <button type="submit" name="cap_nhat_ung_tuyen" class="btn"><?php echo $btn_label; ?></button>
                                                    </form>

                                                    <?php if (($app['trang_thai'] ?? '') === 'du_bi'): ?>
                                                        <form method="POST" style="display:flex;align-items:center;">
                                                            <input type="hidden" name="id_ung_tuyen" value="<?php echo (int)$app['id']; ?>">
                                                            <button type="submit" name="promote_du_bi" class="btn" style="background:#28a745;">Chốt</button>
                                                        </form>
                                                    <?php endif; ?>

                                                    <a href="quan-ly-thanh-vien.php?xem_id=<?php echo (int)$app['thanh_vien_id']; ?>" class="btn" style="background:#6c757d; white-space:nowrap;">Xem hồ sơ</a>
                                                </div>
                                            </td>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>

                            <?php
                            // history panel
                            $stmt_hist = $pdo->prepare('SELECT l.*, tv.ho_ten AS nguoi_thuc_hien_name FROM lich_su_ung_tuyen l LEFT JOIN thanh_vien tv ON tv.id = l.nguoi_thuc_hien WHERE l.su_kien_id = ? ORDER BY l.ngay_tao DESC LIMIT 20');
                            $stmt_hist->execute([$sk['id']]);
                            $histories = $stmt_hist->fetchAll();
                            ?>
                            <div style="margin-top:12px; border-top:1px dashed #e6eef6; padding-top:12px;">
                                <h4>Lịch sử thao tác gần đây</h4>
                                <?php if (count($histories) > 0): ?>
                                    <ul style="padding-left:16px; margin:6px 0;">
                                        <?php foreach ($histories as $h): ?>
                                            <?php $actor = !empty($h['nguoi_thuc_hien_name']) ? htmlspecialchars($h['nguoi_thuc_hien_name']) : ($h['nguoi_thuc_hien'] ? 'ID#' . (int)$h['nguoi_thuc_hien'] : 'Hệ thống'); ?>
                                            <li style="margin-bottom:6px;"><span class="small"><?php echo date('d/m/Y H:i', strtotime($h['ngay_tao'])); ?></span> — <strong><?php echo htmlspecialchars($h['hanh_dong']); ?></strong> by <em><?php echo $actor; ?></em>: <?php echo htmlspecialchars($h['noi_dung']); ?></li>
                                        <?php endforeach; ?>
                                    </ul>
                                <?php else: ?>
                                    <div class="small">Chưa có thao tác nào cho sự kiện này.</div>
                                <?php endif; ?>
                            </div>
                        </div>

                        <div class="workflow-box">
                            <h4 style="margin-top:0;">3. Hoàn thành sự kiện</h4>
                            <?php if ($sk['trang_thai'] === 'hoan_thanh'): ?>
                                <div class="small">Sự kiện đã được đánh dấu hoàn tất.</div>
                            <?php else: ?>
                                <form method="POST">
                                    <input type="hidden" name="su_kien_id" value="<?php echo (int)$sk['id']; ?>">
                                    <button type="submit" name="danh_dau_hoan_thanh" class="btn warning">✅ Đánh dấu hoàn thành</button>
                                </form>
                                <div class="small" style="margin-top:8px;">Sau bước này, admin có thể giải ngân cho người chính thức.</div>
                            <?php endif; ?>
                        </div>

                        <div class="workflow-box">
                            <h4 style="margin-top:0;">4. Giải ngân</h4>
                            <?php if ($sk['trang_thai'] === 'hoan_thanh'): ?>
                                <?php
                                $stmt_pay = $pdo->prepare('SELECT u.id, u.thanh_vien_id, tv.ho_ten FROM ung_tuyen_su_kien u JOIN thanh_vien tv ON tv.id = u.thanh_vien_id WHERE u.su_kien_id = ? AND u.trang_thai = "chinh_thuc"');
                                $stmt_pay->execute([$sk['id']]);
                                $pay_list = $stmt_pay->fetchAll();
                                ?>
                                <?php if (count($pay_list) > 0): ?>
                                    <?php foreach ($pay_list as $pay): ?>
                                        <form method="POST" class="row" style="margin-bottom:8px;">
                                            <input type="hidden" name="id_ung_tuyen" value="<?php echo (int)$pay['id']; ?>">
                                            <strong style="font-size:13px;"><?php echo htmlspecialchars($pay['ho_ten']); ?></strong>
                                            <input type="number" name="so_tien" value="<?php echo (int)$sk['thu_lao_du_kien']; ?>" min="0" style="width:120px;">
                                            <button type="submit" name="giai_ngan" class="btn">Giải ngân</button>
                                        </form>
                                    <?php endforeach; ?>
                                <?php else: ?>
                                    <div class="small">Chưa có người chính thức để giải ngân.</div>
                                <?php endif; ?>
                            <?php else: ?>
                                <div class="small">Chỉ có thể giải ngân sau khi sự kiện được đánh dấu hoàn thành.</div>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
            <?php endforeach; ?>
        </div>
    </div>
</body>
</html>
