<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

include '../auth.php';
requireLogin();
if (!checkRole('admin')) {
    header("Location: ../unauthorized.php");
    exit();
}

$message = '';
$action = isset($_GET['action']) ? $_GET['action'] : '';
$user_id = isset($_GET['id']) ? intval($_GET['id']) : 0;

// Cek apakah kolom face_verified ada di database
$check_column_query = "SHOW COLUMNS FROM users LIKE 'face_verified'";
$column_result = mysqli_query($conn, $check_column_query);
$face_verified_column_exists = (mysqli_num_rows($column_result) > 0);

// Cek apakah kolom roles ada di database
$check_roles_column_query = "SHOW COLUMNS FROM users LIKE 'roles'";
$roles_column_result = mysqli_query($conn, $check_roles_column_query);
$roles_column_exists = (mysqli_num_rows($roles_column_result) > 0);

// Jika kolom roles tidak ada, buat kolom tersebut
if (!$roles_column_exists) {
    $alter_query = "ALTER TABLE users ADD COLUMN roles JSON DEFAULT NULL";
    if (mysqli_query($conn, $alter_query)) {
        $roles_column_exists = true;
        $message = '<div class="alert alert-success">Kolom roles berhasil ditambahkan ke database!</div>';
    } else {
        $message = '<div class="alert alert-danger">Error membuat kolom roles: ' . mysqli_error($conn) . '</div>';
    }
}

// Proses pembuatan kolom face_verified jika diminta
if (isset($_POST['create_face_verified_column'])) {
    $alter_query = "ALTER TABLE users ADD COLUMN face_verified TINYINT(1) DEFAULT 0";
    if (mysqli_query($conn, $alter_query)) {
        $face_verified_column_exists = true;
        $message = '<div class="alert alert-success">Kolom face_verified berhasil ditambahkan ke database!</div>';
    } else {
        $message = '<div class="alert alert-danger">Error membuat kolom face_verified: ' . mysqli_error($conn) . '</div>';
    }
}

// PROSES HAPUS SEMUA SISWA
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['hapus_semua_siswa'])) {
    $confirm = isset($_POST['confirm_delete_siswa']) ? $_POST['confirm_delete_siswa'] : '';
    
    if ($confirm !== 'HAPUS SEMUA SISWA') {
        $message = '<div class="alert alert-danger">Konfirmasi tidak valid. Ketik "HAPUS SEMUA SISWA" untuk melanjutkan.</div>';
    } else {
        mysqli_begin_transaction($conn);
        
        try {
            $deleted_count = 0;
            $deleted_kelas_count = 0;
            
            $get_siswa_query = "SELECT id FROM users WHERE role = 'siswa'";
            $get_siswa_result = mysqli_query($conn, $get_siswa_query);
            $siswa_ids = [];
            while ($row = mysqli_fetch_assoc($get_siswa_result)) {
                $siswa_ids[] = $row['id'];
            }
            
            $total_siswa = count($siswa_ids);
            
            if (!empty($siswa_ids)) {
                $ids_string = implode(',', array_map('intval', $siswa_ids));
                $delete_siswa_kelas = "DELETE FROM siswa_kelas WHERE id_siswa IN ($ids_string)";
                mysqli_query($conn, $delete_siswa_kelas);
                $deleted_kelas_count = mysqli_affected_rows($conn);
            }
            
            $delete_users_query = "DELETE FROM users WHERE role = 'siswa'";
            $delete_users_stmt = mysqli_prepare($conn, $delete_users_query);
            mysqli_stmt_execute($delete_users_stmt);
            $deleted_count = mysqli_stmt_affected_rows($delete_users_stmt);
            mysqli_stmt_close($delete_users_stmt);
            
            mysqli_commit($conn);
            
            $message = '<div class="alert alert-success">
                <strong>? Berhasil menghapus SEMUA data siswa!</strong><br>
                ?? Total siswa dihapus: <strong>' . $deleted_count . '</strong> pengguna.<br>
                ?? Total record siswa_kelas dihapus: <strong>' . $deleted_kelas_count . '</strong> record.
            </div>';
            
        } catch (Exception $e) {
            mysqli_rollback($conn);
            $message = '<div class="alert alert-danger">? Gagal menghapus data: ' . $e->getMessage() . '</div>';
        }
    }
}

// PROSES DOWNLOAD DATA NAMA DAN USERNAME (SEMUA USER)
if (isset($_GET['download']) && $_GET['download'] == 'users') {
    $filter_kelas_dl = isset($_GET['filter_kelas']) ? $_GET['filter_kelas'] : '';
    $filter_role_dl = isset($_GET['filter_role']) ? $_GET['filter_role'] : '';
    
    $download_query = "SELECT users.nama_lengkap, users.username, users.email, users.role, 
                       kelas.nama_kelas as nama_kelas, kelas.tingkat 
                       FROM users 
                       LEFT JOIN kelas ON users.id_kelas = kelas.id 
                       WHERE 1=1";
    
    if (!empty($filter_kelas_dl) && $filter_kelas_dl != '') {
        $download_query .= " AND users.id_kelas = " . intval($filter_kelas_dl);
    }
    
    if (!empty($filter_role_dl) && $filter_role_dl != '') {
        $download_query .= " AND users.role = '$filter_role_dl'";
    }
    
    $download_query .= " ORDER BY role, nama_lengkap";
    
    $download_result = mysqli_query($conn, $download_query);
    
    $filename = 'data_users_' . date('Y-m-d_H-i-s') . '.csv';
    
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Pragma: no-cache');
    header('Expires: 0');
    
    $output = fopen('php://output', 'w');
    fprintf($output, chr(0xEF).chr(0xBB).chr(0xBF));
    
    fputcsv($output, ['No', 'Nama Lengkap', 'Username', 'Email', 'Role', 'Kelas']);
    
    $no = 1;
    while ($row = mysqli_fetch_assoc($download_result)) {
        $kelas = ($row['tingkat'] && $row['nama_kelas']) ? $row['tingkat'] . ' ' . $row['nama_kelas'] : '-';
        fputcsv($output, [
            $no,
            $row['nama_lengkap'],
            $row['username'],
            $row['email'],
            ucfirst($row['role']),
            $kelas
        ]);
        $no++;
    }
    
    fclose($output);
    exit();
}

// PROSES DOWNLOAD DATA SISWA SAJA
if (isset($_GET['download']) && $_GET['download'] == 'siswa') {
    $download_query = "SELECT u.nama_lengkap, u.username, u.email, 
                       k.tingkat, k.nama_kelas,
                       sk.tahun_ajaran, sk.semester
                       FROM users u
                       LEFT JOIN siswa_kelas sk ON u.id = sk.id_siswa
                       LEFT JOIN kelas k ON sk.id_kelas = k.id
                       WHERE u.role = 'siswa'
                       ORDER BY u.nama_lengkap";
    
    $download_result = mysqli_query($conn, $download_query);
    
    $filename = 'data_siswa_' . date('Y-m-d_H-i-s') . '.csv';
    
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Pragma: no-cache');
    header('Expires: 0');
    
    $output = fopen('php://output', 'w');
    fprintf($output, chr(0xEF).chr(0xBB).chr(0xBF));
    
    fputcsv($output, ['No', 'Nama Lengkap', 'Username', 'Email', 'Kelas', 'Tahun Ajaran', 'Semester']);
    
    $no = 1;
    while ($row = mysqli_fetch_assoc($download_result)) {
        $kelas = ($row['tingkat'] && $row['nama_kelas']) ? $row['tingkat'] . ' ' . $row['nama_kelas'] : '-';
        fputcsv($output, [
            $no,
            $row['nama_lengkap'],
            $row['username'],
            $row['email'],
            $kelas,
            $row['tahun_ajaran'] ?? '-',
            $row['semester'] ?? '-'
        ]);
        $no++;
    }
    
    fclose($output);
    exit();
}

// Proses hapus user (single delete)
if ($action == 'delete' && $user_id > 0) {
    if ($user_id != $_SESSION['user_id']) {
        $delete_query = "DELETE FROM users WHERE id = $user_id";
        if (mysqli_query($conn, $delete_query)) {
            $message = '<div class="alert alert-success">User berhasil dihapus!</div>';
        } else {
            $message = '<div class="alert alert-danger">Error: ' . mysqli_error($conn) . '</div>';
        }
    } else {
        $message = '<div class="alert alert-danger">Tidak dapat menghapus akun sendiri!</div>';
    }
}

// Fungsi untuk mendapatkan roles array dari database
function getRolesArray($user_data) {
    global $roles_column_exists;
    
    if (!$roles_column_exists) {
        return [$user_data['role']];
    }
    
    if (!empty($user_data['roles'])) {
        $roles = json_decode($user_data['roles'], true);
        return is_array($roles) ? $roles : [$user_data['role']];
    }
    
    return [$user_data['role']];
}

// Proses tambah/edit user
if ($_SERVER['REQUEST_METHOD'] == 'POST' 
    && !isset($_POST['hapus_semua_siswa']) 
    && !isset($_POST['create_face_verified_column']) 
    && !isset($_POST['verify_face']) 
    && !isset($_POST['upload_face_data'])
    && !isset($_POST['change_password_admin'])
    && isset($_POST['username'])) {
    
    $username = mysqli_real_escape_string($conn, $_POST['username'] ?? '');
    $email = mysqli_real_escape_string($conn, $_POST['email'] ?? '');
    $nama_lengkap = mysqli_real_escape_string($conn, $_POST['nama_lengkap'] ?? '');
    $role = mysqli_real_escape_string($conn, $_POST['role'] ?? '');
    $id_kelas = ($role == 'siswa' && isset($_POST['id_kelas'])) ? intval($_POST['id_kelas']) : NULL;
    $edit_id = isset($_POST['edit_id']) ? intval($_POST['edit_id']) : 0;
    
    $roles_array = [];
    if (isset($_POST['roles']) && is_array($_POST['roles'])) {
        $roles_array = $_POST['roles'];
    } else {
        $roles_array = [$role];
    }
    
    $roles_json = json_encode($roles_array);
    
    if (empty($username) || empty($email) || empty($nama_lengkap) || empty($role)) {
        $message = '<div class="alert alert-danger">Semua field harus diisi!</div>';
    } else if ($role == 'siswa' && empty($id_kelas)) {
        $message = '<div class="alert alert-danger">Kelas harus dipilih untuk role siswa!</div>';
    } else {
        $check_query = "SELECT id FROM users WHERE (username = '$username' OR email = '$email') AND id != $edit_id";
        $check_result = mysqli_query($conn, $check_query);
        
        if (mysqli_num_rows($check_result) > 0) {
            $message = '<div class="alert alert-danger">Username atau email sudah digunakan!</div>';
        } else {
            if ($edit_id > 0) {
                if ($roles_column_exists) {
                    if ($role == 'siswa') {
                        $update_query = "UPDATE users SET username = '$username', email = '$email', 
                                        nama_lengkap = '$nama_lengkap', role = '$role', 
                                        roles = '$roles_json', id_kelas = $id_kelas 
                                        WHERE id = $edit_id";
                    } else {
                        $update_query = "UPDATE users SET username = '$username', email = '$email', 
                                        nama_lengkap = '$nama_lengkap', role = '$role', 
                                        roles = '$roles_json', id_kelas = NULL 
                                        WHERE id = $edit_id";
                    }
                } else {
                    if ($role == 'siswa') {
                        $update_query = "UPDATE users SET username = '$username', email = '$email', 
                                        nama_lengkap = '$nama_lengkap', role = '$role', id_kelas = $id_kelas 
                                        WHERE id = $edit_id";
                    } else {
                        $update_query = "UPDATE users SET username = '$username', email = '$email', 
                                        nama_lengkap = '$nama_lengkap', role = '$role', id_kelas = NULL 
                                        WHERE id = $edit_id";
                    }
                }
                
                if (mysqli_query($conn, $update_query)) {
                    $message = '<div class="alert alert-success">User berhasil diperbarui!</div>';
                } else {
                    $message = '<div class="alert alert-danger">Error: ' . mysqli_error($conn) . '</div>';
                }
            } else {
                $password_default = 'password123';
                $password_hashed = password_hash($password_default, PASSWORD_DEFAULT);
                
                if ($roles_column_exists) {
                    if ($role == 'siswa') {
                        $insert_query = "INSERT INTO users (username, password, email, nama_lengkap, role, roles, id_kelas) 
                                        VALUES ('$username', '$password_hashed', '$email', '$nama_lengkap', '$role', '$roles_json', $id_kelas)";
                    } else {
                        $insert_query = "INSERT INTO users (username, password, email, nama_lengkap, role, roles, id_kelas) 
                                        VALUES ('$username', '$password_hashed', '$email', '$nama_lengkap', '$role', '$roles_json', NULL)";
                    }
                } else {
                    if ($role == 'siswa') {
                        $insert_query = "INSERT INTO users (username, password, email, nama_lengkap, role, id_kelas) 
                                        VALUES ('$username', '$password_hashed', '$email', '$nama_lengkap', '$role', $id_kelas)";
                    } else {
                        $insert_query = "INSERT INTO users (username, password, email, nama_lengkap, role, id_kelas) 
                                        VALUES ('$username', '$password_hashed', '$email', '$nama_lengkap', '$role', NULL)";
                    }
                }
                
                if (mysqli_query($conn, $insert_query)) {
                    $new_user_id = mysqli_insert_id($conn);
                    
                    if ($role == 'siswa' && $id_kelas) {
                        $tahun_ajaran = date('Y') . '/' . (date('Y') + 1);
                        $semester = (date('n') >= 7 && date('n') <= 12) ? 'ganjil' : 'genap';
                        
                        $siswa_kelas_query = "INSERT INTO siswa_kelas (id_siswa, id_kelas, tahun_ajaran, semester, tanggal_masuk) 
                                             VALUES (?, ?, ?, ?, CURDATE())";
                        $siswa_kelas_stmt = mysqli_prepare($conn, $siswa_kelas_query);
                        mysqli_stmt_bind_param($siswa_kelas_stmt, "iiss", $new_user_id, $id_kelas, $tahun_ajaran, $semester);
                        mysqli_stmt_execute($siswa_kelas_stmt);
                        mysqli_stmt_close($siswa_kelas_stmt);
                    }
                    
                    $message = '<div class="alert alert-success">User berhasil ditambahkan! Password default: password123</div>';
                } else {
                    $message = '<div class="alert alert-danger">Error: ' . mysqli_error($conn) . '</div>';
                }
            }
        }
    }
}

// Proses verifikasi wajah
if (isset($_POST['verify_face']) && $face_verified_column_exists) {
    $user_id = intval($_POST['user_id'] ?? 0);
    $verification_success = true;
    
    if ($verification_success) {
        $update_query = "UPDATE users SET face_verified = 1 WHERE id = $user_id";
        if (mysqli_query($conn, $update_query)) {
            $message = '<div class="alert alert-success">Verifikasi wajah berhasil!</div>';
        } else {
            $message = '<div class="alert alert-danger">Error: ' . mysqli_error($conn) . '</div>';
        }
    } else {
        $message = '<div class="alert alert-danger">Verifikasi wajah gagal. Silakan coba lagi.</div>';
    }
}

// Proses unggah data wajah
if (isset($_POST['upload_face_data'])) {
    $user_id = intval($_POST['user_id'] ?? 0);
    $face_data = mysqli_real_escape_string($conn, $_POST['face_embedding'] ?? '');
    
    $update_query = "UPDATE users SET face_embedding = '$face_data'";
    
    if ($face_verified_column_exists) {
        $update_query .= ", face_verified = 0";
    }
    
    $update_query .= " WHERE id = $user_id";
    
    if (mysqli_query($conn, $update_query)) {
        $message = '<div class="alert alert-success">Data wajah berhasil diunggah!</div>';
    } else {
        $message = '<div class="alert alert-danger">Error: ' . mysqli_error($conn) . '</div>';
    }
}

// Proses ganti password oleh admin
if (isset($_POST['change_password_admin'])) {
    $target_user_id = isset($_POST['target_user_id']) ? intval($_POST['target_user_id']) : 0;
    $new_password = $_POST['new_password'] ?? '';
    $confirm_password = $_POST['confirm_password'] ?? '';
    
    if ($target_user_id <= 0) {
        $message = '<div class="alert alert-danger">User tidak valid! Pastikan Anda membuka halaman edit user terlebih dahulu.</div>';
    } else if (empty($new_password)) {
        $message = '<div class="alert alert-danger">Password baru tidak boleh kosong!</div>';
    } else if (strlen($new_password) < 6) {
        $message = '<div class="alert alert-danger">Password minimal 6 karakter!</div>';
    } else if ($new_password !== $confirm_password) {
        $message = '<div class="alert alert-danger">Konfirmasi password tidak cocok!</div>';
    } else {
        $check_user_query = "SELECT id, username, nama_lengkap FROM users WHERE id = $target_user_id";
        $check_user_result = mysqli_query($conn, $check_user_query);
        
        if (mysqli_num_rows($check_user_result) == 0) {
            $message = '<div class="alert alert-danger">User tidak ditemukan!</div>';
        } else {
            $user_data = mysqli_fetch_assoc($check_user_result);
            $password_hashed = password_hash($new_password, PASSWORD_DEFAULT);
            
            $update_password_query = "UPDATE users SET password = ? WHERE id = ?";
            $update_password_stmt = mysqli_prepare($conn, $update_password_query);
            mysqli_stmt_bind_param($update_password_stmt, "si", $password_hashed, $target_user_id);
            
            if (mysqli_stmt_execute($update_password_stmt)) {
                $message = '<div class="alert alert-success">
                    <strong>? Password berhasil diubah!</strong><br>
                    Password untuk user <strong>' . htmlspecialchars($user_data['username']) . '</strong> 
                    (' . htmlspecialchars($user_data['nama_lengkap']) . ') telah diperbarui.
                </div>';
            } else {
                $message = '<div class="alert alert-danger">Error: ' . mysqli_error($conn) . '</div>';
            }
            mysqli_stmt_close($update_password_stmt);
        }
    }
}

// Ambil data user untuk edit
$edit_user = null;
if ($action == 'edit' && $user_id > 0) {
    $query = "SELECT *, kelas.nama_kelas as nama_kelas 
              FROM users 
              LEFT JOIN kelas ON users.id_kelas = kelas.id 
              WHERE users.id = $user_id";
    $result = mysqli_query($conn, $query);
    $edit_user = mysqli_fetch_assoc($result);
    
    // PERBAIKAN: Validasi apakah user ditemukan
    if (!$edit_user) {
        $message = '<div class="alert alert-danger">User dengan ID ' . $user_id . ' tidak ditemukan!</div>';
        $action = ''; // batalkan mode edit
    } else {
        if ($roles_column_exists) {
            $edit_user['roles_array'] = getRolesArray($edit_user);
        } else {
            $edit_user['roles_array'] = [$edit_user['role']];
        }
        
        if (!$face_verified_column_exists) {
            $edit_user['face_verified'] = 0;
        }
    }
}

// Ambil data kelas untuk dropdown
$kelas_query = "SELECT * FROM kelas ORDER BY tingkat, nama_kelas";
$kelas_result = mysqli_query($conn, $kelas_query);
$kelas_list = mysqli_fetch_all($kelas_result, MYSQLI_ASSOC);

// Ambil parameter filter
$filter_kelas = isset($_GET['filter_kelas']) ? $_GET['filter_kelas'] : '';
$filter_role = isset($_GET['filter_role']) ? $_GET['filter_role'] : '';

// Query untuk mengambil data user dengan filter
$query = "SELECT users.*, kelas.nama_kelas as nama_kelas, kelas.tingkat 
          FROM users 
          LEFT JOIN kelas ON users.id_kelas = kelas.id 
          WHERE 1=1";
          
if (!empty($filter_kelas) && $filter_kelas != '') {
    $query .= " AND users.id_kelas = " . intval($filter_kelas);
}

if (!empty($filter_role) && $filter_role != '') {
    $query .= " AND users.role = '$filter_role'";
}

$query .= " ORDER BY role, nama_lengkap";

$result = mysqli_query($conn, $query);
if (!$result) {
    die('Query error: ' . mysqli_error($conn));
}
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);

foreach ($users as &$user) {
    if ($roles_column_exists) {
        $user['roles_array'] = getRolesArray($user);
    } else {
        $user['roles_array'] = [$user['role']];
    }
    
    if (!$face_verified_column_exists) {
        $user['face_verified'] = 0;
    }
}
unset($user);

$admin_count = 0;
$guru_count = 0;
$siswa_count = 0;
$face_verified_count = 0;

foreach ($users as $user) {
    if (in_array('admin', $user['roles_array'])) $admin_count++;
    if (in_array('guru', $user['roles_array'])) $guru_count++;
    if (in_array('siswa', $user['roles_array'])) $siswa_count++;
    
    if ($user['face_verified']) {
        $face_verified_count++;
    }
}

$siswa_list_query = "
    SELECT u.id, u.username, u.email, u.nama_lengkap, 
           k.tingkat, k.nama_kelas,
           sk.tahun_ajaran, sk.semester
    FROM users u
    LEFT JOIN siswa_kelas sk ON u.id = sk.id_siswa
    LEFT JOIN kelas k ON sk.id_kelas = k.id
    WHERE u.role = 'siswa'
    ORDER BY u.nama_lengkap
";
$siswa_list_result = mysqli_query($conn, $siswa_list_query);
$total_siswa = mysqli_num_rows($siswa_list_result);
?>

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Kelola Pengguna - E-Learning Sekolah</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css">
    <style>
        .badge-admin { background-color: #dc3545; }
        .badge-guru { background-color: #198754; }
        .badge-siswa { background-color: #0d6efd; }
        .badge-face-verified { background-color: #20c997; }
        .badge-face-pending { background-color: #ffc107; }
        #kelas-field { display: none; }
        .filter-section {
            background-color: #f8f9fa;
            padding: 15px;
            border-radius: 5px;
            margin-bottom: 20px;
        }
        .table-responsive {
            max-height: 400px;
            overflow-y: auto;
        }
        .face-verification-section {
            border-left: 4px solid #0d6efd;
            padding-left: 15px;
            margin-top: 20px;
        }
        .column-warning {
            background-color: #fff3cd;
            border: 1px solid #ffeaa7;
            border-radius: 5px;
            padding: 10px;
            margin-bottom: 15px;
        }
        .role-badge {
            font-size: 0.7em;
            margin: 1px;
        }
        .delete-all-section {
            background-color: #fff5f5;
            border: 2px solid #dc3545;
            border-radius: 8px;
            padding: 15px;
            margin-top: 20px;
        }
        .delete-all-section .card-header {
            background-color: #dc3545;
            color: white;
        }
        .siswa-list {
            max-height: 300px;
            overflow-y: auto;
        }
        .siswa-count-badge {
            font-size: 1.2rem;
            padding: 8px 16px;
        }
        .download-section {
            background-color: #e8f5e9;
            border: 1px solid #c8e6c9;
            border-radius: 5px;
            padding: 12px;
            margin-top: 10px;
        }
        .password-field {
            position: relative;
        }
        .password-toggle {
            cursor: pointer;
        }
        #changePasswordForm {
            background-color: #fff5f5;
            padding: 15px;
            border-radius: 8px;
            border: 1px solid #ffcccc;
        }
        #changePasswordForm h6 {
            border-bottom: 1px dashed #ffcccc;
            padding-bottom: 10px;
        }
    </style>
    <script>
        function toggleKelasField() {
            var role = document.getElementById('role').value;
            var kelasField = document.getElementById('kelas-field');
            
            if (role === 'siswa') {
                kelasField.style.display = 'block';
                if (document.getElementById('id_kelas')) {
                    document.getElementById('id_kelas').setAttribute('required', 'required');
                }
            } else {
                kelasField.style.display = 'none';
                if (document.getElementById('id_kelas')) {
                    document.getElementById('id_kelas').removeAttribute('required');
                }
            }
        }
        
        function toggleRoleCheckboxes() {
            var mainRole = document.getElementById('role').value;
            var roleAdmin = document.getElementById('role_admin');
            var roleGuru = document.getElementById('role_guru');
            var roleSiswa = document.getElementById('role_siswa');
            
            if (roleAdmin) {
                roleAdmin.checked = (mainRole === 'admin');
                roleAdmin.disabled = (mainRole === 'admin');
            }
            
            if (roleGuru) {
                roleGuru.checked = (mainRole === 'guru');
                roleGuru.disabled = (mainRole === 'guru');
            }
            
            if (roleSiswa) {
                roleSiswa.checked = (mainRole === 'siswa');
                roleSiswa.disabled = (mainRole === 'siswa');
            }
        }
        
        function verifyFace(userId) {
            if (confirm('Apakah Anda yakin ingin memverifikasi wajah pengguna ini?')) {
                const form = document.createElement('form');
                form.method = 'POST';
                form.action = '';
                
                const input = document.createElement('input');
                input.type = 'hidden';
                input.name = 'user_id';
                input.value = userId;
                
                const verifyInput = document.createElement('input');
                verifyInput.type = 'hidden';
                verifyInput.name = 'verify_face';
                verifyInput.value = '1';
                
                form.appendChild(input);
                form.appendChild(verifyInput);
                document.body.appendChild(form);
                form.submit();
            }
        }
        
        function createFaceVerifiedColumn() {
            if (confirm('Kolom face_verified tidak ditemukan di database. Apakah Anda ingin membuatnya sekarang?')) {
                const form = document.createElement('form');
                form.method = 'POST';
                form.action = '';
                
                const input = document.createElement('input');
                input.type = 'hidden';
                input.name = 'create_face_verified_column';
                input.value = '1';
                
                form.appendChild(input);
                document.body.appendChild(form);
                form.submit();
            }
        }
        
        function toggleSiswaList() {
            const list = document.getElementById('siswa-list');
            const icon = document.getElementById('toggle-icon');
            if (list.style.display === 'none') {
                list.style.display = 'block';
                icon.className = 'bi bi-chevron-up';
            } else {
                list.style.display = 'none';
                icon.className = 'bi bi-chevron-down';
            }
        }
        
        function togglePasswordVisibility(fieldId) {
            var field = document.getElementById(fieldId);
            var icon = document.getElementById(fieldId + '_icon');
            
            if (field.type === 'password') {
                field.type = 'text';
                icon.className = 'bi bi-eye-slash';
            } else {
                field.type = 'password';
                icon.className = 'bi bi-eye';
            }
        }
        
        document.addEventListener('DOMContentLoaded', function() {
            toggleRoleCheckboxes();
            toggleKelasField();
            
            const roleSelect = document.getElementById('role');
            if (roleSelect) {
                roleSelect.addEventListener('change', function() {
                    toggleRoleCheckboxes();
                    toggleKelasField();
                });
            }
            
            const confirmInput = document.getElementById('confirm_delete_siswa');
            if (confirmInput) {
                confirmInput.addEventListener('input', function() {
                    const hapusBtn = document.getElementById('hapusSiswaBtn');
                    if (this.value === 'HAPUS SEMUA SISWA') {
                        hapusBtn.disabled = false;
                        hapusBtn.classList.remove('btn-secondary');
                        hapusBtn.classList.add('btn-danger');
                    } else {
                        hapusBtn.disabled = true;
                        hapusBtn.classList.remove('btn-danger');
                        hapusBtn.classList.add('btn-secondary');
                    }
                });
            }
            
            const form = document.getElementById('hapusSemuaSiswaForm');
            if (form) {
                form.addEventListener('submit', function(e) {
                    const totalSiswa = <?php echo $total_siswa; ?>;
                    if (totalSiswa === 0) {
                        alert('Tidak ada data siswa untuk dihapus!');
                        e.preventDefault();
                        return;
                    }
                    
                    if (!confirm('?? PERINGATAN AKHIR!\n\nAnda akan menghapus SEMUA ' + totalSiswa + ' siswa dari database.\n\nTindakan ini TIDAK DAPAT DIKEMBALIKAN!\n\nApakah Anda benar-benar yakin?')) {
                        e.preventDefault();
                    }
                });
            }
            
            // Validasi konfirmasi password
            const newPassword = document.getElementById('new_password');
            const confirmPassword = document.getElementById('confirm_password');
            const matchInfo = document.getElementById('password_match_info');

            if (newPassword && confirmPassword && matchInfo) {
                function checkPasswordMatch() {
                    if (confirmPassword.value === '') {
                        matchInfo.innerHTML = '';
                        return;
                    }
                    if (newPassword.value === confirmPassword.value) {
                        matchInfo.innerHTML = '<span class="text-success"><i class="bi bi-check-circle"></i> Password cocok</span>';
                    } else {
                        matchInfo.innerHTML = '<span class="text-danger"><i class="bi bi-x-circle"></i> Password tidak cocok</span>';
                    }
                }
                
                newPassword.addEventListener('input', checkPasswordMatch);
                confirmPassword.addEventListener('input', checkPasswordMatch);
            }

            // PERBAIKAN: Form ganti password validation dengan cek target_user_id
            const changePasswordForm = document.getElementById('changePasswordForm');
            if (changePasswordForm) {
                changePasswordForm.addEventListener('submit', function(e) {
                    const targetId = this.querySelector('input[name="target_user_id"]').value;
                    if (!targetId || parseInt(targetId) <= 0) {
                        e.preventDefault();
                        alert('User tidak valid! Silakan muat ulang halaman edit user.');
                        return;
                    }
                    if (newPassword.value !== confirmPassword.value) {
                        e.preventDefault();
                        alert('Konfirmasi password tidak cocok!');
                        return;
                    }
                    if (newPassword.value.length < 6) {
                        e.preventDefault();
                        alert('Password minimal 6 karakter!');
                        return;
                    }
                });
            }
        });
    </script>
</head>
<body>
    <!-- Navbar -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
        <div class="container">
            <a class="navbar-brand" href="#">E-Ujian Sekolah</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav ms-auto">
                    <li class="nav-item">
                        <a class="nav-link" href="dashboard.php">Dashboard</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link active" href="manage_users.php">Kelola Pengguna</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="manage_courses.php">Kelola Pelajaran</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="change_password.php">Ubah Password</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="../logout.php">Logout</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>

    <div class="container mt-4">
        <h2 class="mb-4">Kelola Pengguna</h2>
        
        <?php echo $message; ?>
        
        <?php if (!$face_verified_column_exists): ?>
        <div class="column-warning">
            <strong>Peringatan:</strong> Kolom 'face_verified' tidak ditemukan di database. 
            <a href="javascript:void(0)" onclick="createFaceVerifiedColumn()" class="btn btn-sm btn-warning ms-2">
                Buat Kolom Sekarang
            </a>
        </div>
        <?php endif; ?>
        
        <div class="row">
            <div class="col-md-5">
                <!-- Form Tambah/Edit User -->
                <div class="card">
                    <div class="card-header bg-primary text-white">
                        <h5 class="card-title mb-0">
                            <?php echo $edit_user ? 'Edit User' : 'Tambah User Baru'; ?>
                        </h5>
                    </div>
                    <div class="card-body">
                        <!-- FORM EDIT USER -->
                        <form method="POST" action="">
                            <?php if ($edit_user): ?>
                                <input type="hidden" name="edit_id" value="<?php echo $edit_user['id']; ?>">
                            <?php endif; ?>
                            
                            <div class="mb-3">
                                <label for="username" class="form-label">Username</label>
                                <input type="text" class="form-control" id="username" name="username" 
                                       value="<?php echo $edit_user ? htmlspecialchars($edit_user['username']) : ''; ?>" required>
                            </div>
                            
                            <div class="mb-3">
                                <label for="email" class="form-label">Email</label>
                                <input type="email" class="form-control" id="email" name="email" 
                                       value="<?php echo $edit_user ? htmlspecialchars($edit_user['email']) : ''; ?>" required>
                            </div>
                            
                            <div class="mb-3">
                                <label for="nama_lengkap" class="form-label">Nama Lengkap</label>
                                <input type="text" class="form-control" id="nama_lengkap" name="nama_lengkap" 
                                       value="<?php echo $edit_user ? htmlspecialchars($edit_user['nama_lengkap']) : ''; ?>" required>
                            </div>
                            
                            <div class="mb-3">
                                <label for="role" class="form-label">Role Utama</label>
                                <select class="form-select" id="role" name="role" required>
                                    <option value="">Pilih Role Utama</option>
                                    <option value="admin" <?php echo ($edit_user && $edit_user['role'] == 'admin') ? 'selected' : ''; ?>>Admin</option>
                                    <option value="guru" <?php echo ($edit_user && $edit_user['role'] == 'guru') ? 'selected' : ''; ?>>Guru</option>
                                    <option value="siswa" <?php echo ($edit_user && $edit_user['role'] == 'siswa') ? 'selected' : ''; ?>>Siswa</option>
                                </select>
                            </div>
                            
                            <?php if ($roles_column_exists): ?>
                            <div class="mb-3">
                                <label class="form-label">Roles Tambahan</label>
                                <div>
                                    <div class="form-check">
                                        <input class="form-check-input" type="checkbox" id="role_admin" name="roles[]" value="admin" 
                                            <?php echo ($edit_user && in_array('admin', $edit_user['roles_array'])) ? 'checked' : ''; ?>>
                                        <label class="form-check-label" for="role_admin">Admin</label>
                                    </div>
                                    <div class="form-check">
                                        <input class="form-check-input" type="checkbox" id="role_guru" name="roles[]" value="guru" 
                                            <?php echo ($edit_user && in_array('guru', $edit_user['roles_array'])) ? 'checked' : ''; ?>>
                                        <label class="form-check-label" for="role_guru">Guru</label>
                                    </div>
                                    <div class="form-check">
                                        <input class="form-check-input" type="checkbox" id="role_siswa" name="roles[]" value="siswa" 
                                            <?php echo ($edit_user && in_array('siswa', $edit_user['roles_array'])) ? 'checked' : ''; ?>>
                                        <label class="form-check-label" for="role_siswa">Siswa</label>
                                    </div>
                                </div>
                                <small class="form-text text-muted">Pilih roles tambahan untuk user ini (role utama otomatis terpilih)</small>
                            </div>
                            <?php endif; ?>
                            
                            <div class="mb-3" id="kelas-field">
                                <label for="id_kelas" class="form-label">Kelas</label>
                                <select class="form-select" id="id_kelas" name="id_kelas">
                                    <option value="">Pilih Kelas</option>
                                    <?php foreach ($kelas_list as $kelas): ?>
                                        <option value="<?php echo $kelas['id']; ?>" 
                                            <?php echo ($edit_user && $edit_user['id_kelas'] == $kelas['id']) ? 'selected' : ''; ?>>
                                            <?php echo htmlspecialchars($kelas['tingkat'] . ' ' . $kelas['nama_kelas']); ?>
                                        </option>
                                    <?php endforeach; ?>
                                </select>
                            </div>
                            
                            <button type="submit" class="btn btn-primary w-100">
                                <?php echo $edit_user ? 'Update User' : 'Tambah User'; ?>
                            </button>
                            
                            <?php if ($edit_user): ?>
                                <a href="manage_users.php" class="btn btn-secondary w-100 mt-2">Batal</a>
                            <?php endif; ?>
                        </form>
                        <!-- END FORM EDIT USER -->
                        
                        <!-- FORM GANTI PASSWORD (DI LUAR form edit) -->
                        <?php if ($edit_user && !empty($edit_user['id'])): ?>
                            <hr class="my-4">
                            <h6 class="text-danger mb-3">
                                <i class="bi bi-key"></i> Ganti Password User
                            </h6>
                            <form method="POST" action="" id="changePasswordForm">
                                <input type="hidden" name="target_user_id" value="<?php echo (int)$edit_user['id']; ?>">
                                
                                <div class="mb-3">
                                    <label for="new_password" class="form-label">Password Baru</label>
                                    <div class="input-group">
                                        <input type="password" class="form-control" id="new_password" name="new_password" 
                                               placeholder="Minimal 6 karakter" minlength="6" required>
                                        <button class="btn btn-outline-secondary" type="button" onclick="togglePasswordVisibility('new_password')">
                                            <i class="bi bi-eye" id="new_password_icon"></i>
                                        </button>
                                    </div>
                                    <div class="form-text">Password minimal 6 karakter</div>
                                </div>
                                
                                <div class="mb-3">
                                    <label for="confirm_password" class="form-label">Konfirmasi Password Baru</label>
                                    <div class="input-group">
                                        <input type="password" class="form-control" id="confirm_password" name="confirm_password" 
                                               placeholder="Ulangi password baru" minlength="6" required>
                                        <button class="btn btn-outline-secondary" type="button" onclick="togglePasswordVisibility('confirm_password')">
                                            <i class="bi bi-eye" id="confirm_password_icon"></i>
                                        </button>
                                    </div>
                                    <div class="form-text" id="password_match_info"></div>
                                </div>
                                
                                <button type="submit" name="change_password_admin" class="btn btn-danger w-100"
                                        onclick="return confirm('Apakah Anda yakin ingin mengganti password user ini?')">
                                    <i class="bi bi-key"></i> Ganti Password
                                </button>
                            </form>
                        <?php endif; ?>
                    </div>
                </div>
                
                <!-- DOWNLOAD DATA Section -->
                <div class="card mt-4">
                    <div class="card-header bg-success text-white">
                        <h5 class="card-title mb-0">
                            <i class="bi bi-download"></i> Download Data
                        </h5>
                    </div>
                    <div class="card-body">
                        <p class="text-muted">Download data pengguna dalam format CSV (dapat dibuka di Excel).</p>
                        
                        <div class="d-grid gap-2">
                            <a href="?download=users<?php echo !empty($filter_kelas) ? '&filter_kelas=' . $filter_kelas : ''; ?><?php echo !empty($filter_role) ? '&filter_role=' . $filter_role : ''; ?>" 
                               class="btn btn-success">
                                <i class="bi bi-file-earmark-spreadsheet"></i> Download Semua Data User
                            </a>
                            <small class="text-muted text-center">Format: No, Nama Lengkap, Username, Email, Role, Kelas</small>
                            
                            <a href="?download=siswa" class="btn btn-info text-white mt-2">
                                <i class="bi bi-people"></i> Download Data Siswa
                            </a>
                            <small class="text-muted text-center">Format: No, Nama Lengkap, Username, Email, Kelas, Tahun Ajaran, Semester</small>
                        </div>
                        
                        <?php if (!empty($filter_kelas) || !empty($filter_role)): ?>
                        <div class="alert alert-info mt-3 mb-0">
                            <small>
                                <i class="bi bi-info-circle"></i> 
                                Filter aktif: 
                                <?php if (!empty($filter_kelas)): ?>
                                    Kelas ID <?php echo htmlspecialchars($filter_kelas); ?>
                                <?php endif; ?>
                                <?php if (!empty($filter_role)): ?>
                                    <?php echo !empty($filter_kelas) ? ', ' : ''; ?>
                                    Role <?php echo htmlspecialchars($filter_role); ?>
                                <?php endif; ?>
                            </small>
                        </div>
                        <?php endif; ?>
                    </div>
                </div>
                
                <!-- HAPUS SEMUA SISWA Section -->
                <div class="card mt-4 delete-all-section">
                    <div class="card-header bg-danger text-white">
                        <h5 class="card-title mb-0">
                            <i class="bi bi-exclamation-triangle"></i> Hapus SEMUA Siswa
                        </h5>
                    </div>
                    <div class="card-body">
                        <div class="alert alert-danger">
                            <strong>?? PERINGATAN!</strong> Tombol ini akan menghapus <strong>SEMUA SISWA</strong> (role = siswa) dari database.
                            <ul class="mt-2">
                                <li>Data siswa di tabel <strong>users</strong> akan dihapus</li>
                                <li>Data siswa di tabel <strong>siswa_kelas</strong> akan dihapus</li>
                                <li><strong>Total siswa saat ini: <?php echo $total_siswa; ?> orang</strong></li>
                                <li>Tindakan ini <strong>TIDAK DAPAT DIKEMBALIKAN!</strong></li>
                            </ul>
                        </div>
                        
                        <div class="d-flex gap-2 mb-3">
                            <button class="btn btn-outline-info btn-sm" onclick="toggleSiswaList()" type="button">
                                <i class="bi bi-people"></i> Lihat Daftar Siswa 
                                <span class="badge bg-primary"><?php echo $total_siswa; ?></span>
                                <i class="bi bi-chevron-down" id="toggle-icon"></i>
                            </button>
                            <a href="?download=siswa" class="btn btn-outline-success btn-sm">
                                <i class="bi bi-download"></i> Download Data Siswa
                            </a>
                        </div>
                        
                        <div id="siswa-list" style="display: none;" class="siswa-list mb-3">
                            <div class="table-responsive">
                                <table class="table table-sm table-bordered table-striped">
                                    <thead>
                                        <tr>
                                            <th>No</th>
                                            <th>Nama Lengkap</th>
                                            <th>Username</th>
                                            <th>Kelas</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <?php 
                                        $no = 1;
                                        if ($total_siswa > 0) {
                                            mysqli_data_seek($siswa_list_result, 0);
                                            while ($siswa = mysqli_fetch_assoc($siswa_list_result)) {
                                                echo "<tr>";
                                                echo "<td>{$no}</td>";
                                                echo "<td>" . htmlspecialchars($siswa['nama_lengkap']) . "</td>";
                                                echo "<td>" . htmlspecialchars($siswa['username']) . "</td>";
                                                echo "<td>" . ($siswa['tingkat'] ? htmlspecialchars($siswa['tingkat'] . ' ' . $siswa['nama_kelas']) : '-') . "</td>";
                                                echo "</tr>";
                                                $no++;
                                            }
                                        } else {
                                            echo "<tr><td colspan='4' class='text-center'>Tidak ada data siswa</td></tr>";
                                        }
                                        ?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                        
                        <form action="" method="POST" id="hapusSemuaSiswaForm">
                            <div class="mb-3">
                                <label for="confirm_delete_siswa" class="form-label">
                                    <strong>Ketik "HAPUS SEMUA SISWA" untuk mengonfirmasi</strong>
                                </label>
                                <input type="text" class="form-control" id="confirm_delete_siswa" name="confirm_delete_siswa" 
                                       placeholder="Ketik 'HAPUS SEMUA SISWA' untuk melanjutkan" required>
                                <div class="form-text">Ini adalah langkah keamanan untuk mencegah penghapusan yang tidak disengaja.</div>
                            </div>
                            
                            <button type="submit" name="hapus_semua_siswa" class="btn btn-danger w-100" 
                                    id="hapusSiswaBtn" disabled>
                                <i class="bi bi-trash"></i> HAPUS SEMUA SISWA (<?php echo $total_siswa; ?> siswa)
                            </button>
                        </form>
                    </div>
                </div>
                
                <!-- Verifikasi Wajah Section -->
                <?php if ($edit_user && !empty($edit_user['id'])): ?>
                <div class="card mt-4">
                    <div class="card-header bg-info text-white">
                        <h5 class="card-title mb-0">Verifikasi Wajah</h5>
                    </div>
                    <div class="card-body">
                        <div class="face-verification-section">
                            <p>Status Verifikasi: 
                                <?php if (!empty($edit_user['face_verified'])): ?>
                                    <span class="badge bg-success">Terverifikasi</span>
                                <?php else: ?>
                                    <span class="badge bg-warning">Belum Terverifikasi</span>
                                <?php endif; ?>
                            </p>
                            
                            <?php if (!empty($edit_user['face_verified'])): ?>
                                <p class="text-success">Wajah pengguna telah terverifikasi.</p>
                            <?php else: ?>
                                <?php if (!empty($edit_user['face_embedding']) && $face_verified_column_exists): ?>
                                    <p class="text-muted">Data wajah sudah diunggah. Klik tombol di bawah untuk memverifikasi.</p>
                                    <button class="btn btn-warning w-100 mt-2" onclick="verifyFace(<?php echo $edit_user['id']; ?>)">
                                        Verifikasi Wajah
                                    </button>
                                <?php elseif (!empty($edit_user['face_embedding']) && !$face_verified_column_exists): ?>
                                    <div class="alert alert-warning mt-2">
                                        Kolom face_verified tidak tersedia. Tidak dapat melakukan verifikasi.
                                    </div>
                                <?php else: ?>
                                    <div class="alert alert-secondary">
                                        Belum ada data wajah. Data wajah harus diunggah melalui sistem lain.
                                    </div>
                                <?php endif; ?>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
                <?php endif; ?>
                
                <div class="alert alert-info mt-3">
                    <strong>Info:</strong> Password default untuk user baru adalah <strong>password123</strong>. 
                    User disarankan mengubah password setelah login pertama.
                </div>
            </div>
            
            <div class="col-md-7">
                <!-- Filter Section -->
                <div class="filter-section">
                    <h5>Filter Pengguna</h5>
                    <form method="GET" action="">
                        <div class="row">
                            <div class="col-md-4">
                                <div class="mb-3">
                                    <label for="filter_kelas" class="form-label">Filter berdasarkan Kelas:</label>
                                    <select class="form-select" id="filter_kelas" name="filter_kelas">
                                        <option value="">Semua Kelas</option>
                                        <?php foreach ($kelas_list as $kelas): ?>
                                            <option value="<?php echo $kelas['id']; ?>" 
                                                <?php echo ($filter_kelas == $kelas['id']) ? 'selected' : ''; ?>>
                                                <?php echo htmlspecialchars($kelas['tingkat'] . ' ' . $kelas['nama_kelas']); ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="mb-3">
                                    <label for="filter_role" class="form-label">Filter berdasarkan Role:</label>
                                    <select class="form-select" id="filter_role" name="filter_role">
                                        <option value="">Semua Role</option>
                                        <option value="admin" <?php echo ($filter_role == 'admin') ? 'selected' : ''; ?>>Admin</option>
                                        <option value="guru" <?php echo ($filter_role == 'guru') ? 'selected' : ''; ?>>Guru</option>
                                        <option value="siswa" <?php echo ($filter_role == 'siswa') ? 'selected' : ''; ?>>Siswa</option>
                                    </select>
                                </div>
                            </div>
                            <div class="col-md-4 d-flex align-items-end">
                                <button type="submit" class="btn btn-primary mb-3">Filter</button>
                                <a href="manage_users.php" class="btn btn-secondary mb-3 ms-2">Reset</a>
                            </div>
                        </div>
                    </form>
                    
                    <!-- Tombol Download -->
                    <div class="download-section">
                        <h6 class="mb-2"><i class="bi bi-download"></i> Download Data</h6>
                        <div class="row">
                            <div class="col-md-6 mb-2">
                                <a href="?download=users<?php echo !empty($filter_kelas) ? '&filter_kelas=' . $filter_kelas : ''; ?><?php echo !empty($filter_role) ? '&filter_role=' . $filter_role : ''; ?>" 
                                   class="btn btn-success btn-sm w-100">
                                    <i class="bi bi-file-earmark-spreadsheet"></i> Download Semua Data
                                </a>
                                <small class="text-muted">Sesuai filter aktif</small>
                            </div>
                            <div class="col-md-6 mb-2">
                                <a href="?download=siswa" class="btn btn-info btn-sm w-100 text-white">
                                    <i class="bi bi-people"></i> Download Data Siswa
                                </a>
                                <small class="text-muted">Nama & username siswa</small>
                            </div>
                        </div>
                    </div>
                </div>
                
                <!-- Daftar User -->
                <div class="card">
                    <div class="card-header bg-success text-white d-flex justify-content-between align-items-center">
                        <h5 class="card-title mb-0">Daftar Pengguna</h5>
                        <div>
                            <a href="?download=users<?php echo !empty($filter_kelas) ? '&filter_kelas=' . $filter_kelas : ''; ?><?php echo !empty($filter_role) ? '&filter_role=' . $filter_role : ''; ?>" 
                               class="btn btn-sm btn-light me-2" title="Download CSV">
                                <i class="bi bi-download"></i> Download
                            </a>
                            <span class="badge bg-light text-dark">
                                Total: <?php echo count($users); ?> user
                            </span>
                        </div>
                    </div>
                    <div class="card-body">
                        <div class="table-responsive">
                            <table class="table table-striped table-hover">
                                <thead>
                                    <tr>
                                        <th>Username</th>
                                        <th>Nama Lengkap</th>
                                        <th>Email</th>
                                        <th>Role</th>
                                        <?php if ($face_verified_column_exists): ?>
                                        <th>Verifikasi Wajah</th>
                                        <?php endif; ?>
                                        <th>Kelas</th>
                                        <th>Aksi</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php if (count($users) > 0): ?>
                                        <?php foreach ($users as $user): ?>
                                            <tr>
                                                <td><?php echo htmlspecialchars($user['username']); ?></td>
                                                <td><?php echo htmlspecialchars($user['nama_lengkap']); ?></td>
                                                <td><?php echo htmlspecialchars($user['email']); ?></td>
                                                <td>
                                                    <span class="badge rounded-pill badge-<?php echo $user['role']; ?>">
                                                        <?php echo ucfirst($user['role']); ?>
                                                    </span>
                                                    <?php if (count($user['roles_array']) > 1): ?>
                                                        <br>
                                                        <div class="mt-1">
                                                            <?php 
                                                            $additional_roles = array_diff($user['roles_array'], [$user['role']]);
                                                            foreach ($additional_roles as $additional_role): 
                                                            ?>
                                                                <span class="badge role-badge bg-secondary"><?php echo htmlspecialchars($additional_role); ?></span>
                                                            <?php endforeach; ?>
                                                        </div>
                                                    <?php endif; ?>
                                                </td>
                                                <?php if ($face_verified_column_exists): ?>
                                                <td>
                                                    <?php if ($user['face_verified']): ?>
                                                        <span class="badge bg-success">Terverifikasi</span>
                                                    <?php else: ?>
                                                        <span class="badge bg-warning">Belum</span>
                                                    <?php endif; ?>
                                                </td>
                                                <?php endif; ?>
                                                <td>
                                                    <?php if ($user['role'] == 'siswa' && !empty($user['nama_kelas'])): ?>
                                                        <?php echo htmlspecialchars($user['tingkat'] . ' ' . $user['nama_kelas']); ?>
                                                    <?php else: ?>
                                                        <span class="text-muted">-</span>
                                                    <?php endif; ?>
                                                </td>
                                                <td>
                                                    <div class="btn-group" role="group">
                                                        <a href="manage_users.php?action=edit&id=<?php echo $user['id']; ?>" 
                                                           class="btn btn-sm btn-warning" title="Edit">
                                                            <i class="bi bi-pencil"></i>
                                                        </a>
                                                        <a href="manage_users.php?action=edit&id=<?php echo $user['id']; ?>#changePasswordForm" 
                                                           class="btn btn-sm btn-info text-white" title="Ganti Password">
                                                            <i class="bi bi-key"></i>
                                                        </a>
                                                        <?php if ($user['id'] != $_SESSION['user_id']): ?>
                                                            <a href="manage_users.php?action=delete&id=<?php echo $user['id']; ?>" 
                                                               class="btn btn-sm btn-danger" title="Hapus"
                                                               onclick="return confirm('Yakin ingin menghapus user ini?')">
                                                                <i class="bi bi-trash"></i>
                                                            </a>
                                                        <?php else: ?>
                                                            <button class="btn btn-sm btn-secondary" title="Tidak dapat menghapus akun sendiri" disabled>
                                                                <i class="bi bi-trash"></i>
                                                            </button>
                                                        <?php endif; ?>
                                                    </div>
                                                </td>
                                            </tr>
                                        <?php endforeach; ?>
                                    <?php else: ?>
                                        <tr>
                                            <td colspan="<?php echo $face_verified_column_exists ? 7 : 6; ?>" class="text-center">Tidak ada data user</td>
                                        </tr>
                                    <?php endif; ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
                
                <!-- Statistik User -->
                <div class="row mt-3">
                    <div class="col-md-3">
                        <div class="card text-white bg-danger">
                            <div class="card-body text-center">
                                <h5 class="card-title">Admin</h5>
                                <p class="card-text display-6"><?php echo $admin_count; ?></p>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-md-3">
                        <div class="card text-white bg-success">
                            <div class="card-body text-center">
                                <h5 class="card-title">Guru</h5>
                                <p class="card-text display-6"><?php echo $guru_count; ?></p>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-md-3">
                        <div class="card text-white bg-primary">
                            <div class="card-body text-center">
                                <h5 class="card-title">Siswa</h5>
                                <p class="card-text display-6"><?php echo $siswa_count; ?></p>
                            </div>
                        </div>
                    </div>
                    
                    <?php if ($face_verified_column_exists): ?>
                    <div class="col-md-3">
                        <div class="card text-white bg-info">
                            <div class="card-body text-center">
                                <h5 class="card-title">Terverifikasi</h5>
                                <p class="card-text display-6"><?php echo $face_verified_count; ?></p>
                            </div>
                        </div>
                    </div>
                    <?php endif; ?>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>