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

// Cek login
checkLogin();

$current_user = getCurrentUser();

// Hanya admin yang bisa mengakses halaman users
if ($current_user['role'] != 'admin') {
    $_SESSION['modal_title'] = 'Akses Ditolak!';
    $_SESSION['modal_message'] = 'Anda tidak memiliki izin untuk mengakses halaman ini.';
    $_SESSION['modal_type'] = 'danger';
    header('Location: index.php');
    exit;
}

// Cek method dan ID
if ($_SERVER['REQUEST_METHOD'] != 'GET' || !isset($_GET['id'])) {
    $_SESSION['modal_title'] = 'Error!';
    $_SESSION['modal_message'] = 'Akses tidak valid';
    $_SESSION['modal_type'] = 'danger';
    header('Location: index.php');
    exit;
}

$id = (int)$_GET['id'];

// CEK: Tidak boleh menghapus akun sendiri
if ($id == $current_user['id_user']) {
    $_SESSION['modal_title'] = 'Tidak Dapat Dihapus!';
    $_SESSION['modal_message'] = 'Anda tidak dapat menghapus akun Anda sendiri.';
    $_SESSION['modal_type'] = 'warning';
    header('Location: index.php');
    exit;
}

// CEK: Apakah user digunakan di tabel guru?
$check_guru = mysqli_query($conn, "SELECT COUNT(*) as total, GROUP_CONCAT(nama_guru SEPARATOR ', ') as guru_list 
                                    FROM bkcare_guru WHERE id_user = $id");
$row_guru = mysqli_fetch_assoc($check_guru);

// CEK: Apakah user digunakan sebagai wali kelas?
$check_wali = mysqli_query($conn, "SELECT COUNT(*) as total FROM bkcare_kelas WHERE wali_kelas = $id");
$row_wali = mysqli_fetch_assoc($check_wali);

// CEK: Apakah user digunakan sebagai pelapor?
$check_pelapor = mysqli_query($conn, "SELECT COUNT(*) as total FROM bkcare_laporan_masalah WHERE id_pelapor = $id");
$row_pelapor = mysqli_fetch_assoc($check_pelapor);

// CEK: Apakah user digunakan sebagai guru BK di jadwal?
$check_jadwal = mysqli_query($conn, "SELECT COUNT(*) as total FROM bkcare_jadwal_konseling WHERE id_guru_bk = $id");
$row_jadwal = mysqli_fetch_assoc($check_jadwal);

// CEK: Apakah user digunakan sebagai guru BK di konseling?
$check_konseling = mysqli_query($conn, "SELECT COUNT(*) as total FROM bkcare_konseling WHERE id_guru_bk = $id");
$row_konseling = mysqli_fetch_assoc($check_konseling);

// CEK: Apakah user terhubung dengan siswa?
$check_siswa = mysqli_query($conn, "SELECT COUNT(*) as total, GROUP_CONCAT(nama SEPARATOR ', ') as siswa_list 
                                     FROM bkcare_siswa WHERE id_user = $id");
$row_siswa = mysqli_fetch_assoc($check_siswa);

$total_used = 0;
$used_in = [];

if ($row_guru['total'] > 0) {
    $total_used += $row_guru['total'];
    $used_in[] = 'data guru (' . $row_guru['guru_list'] . ')';
}
if ($row_wali['total'] > 0) {
    $total_used += $row_wali['total'];
    $used_in[] = $row_wali['total'] . ' data kelas (sebagai wali kelas)';
}
if ($row_pelapor['total'] > 0) {
    $total_used += $row_pelapor['total'];
    $used_in[] = $row_pelapor['total'] . ' laporan masalah (sebagai pelapor)';
}
if ($row_jadwal['total'] > 0) {
    $total_used += $row_jadwal['total'];
    $used_in[] = $row_jadwal['total'] . ' jadwal konseling (sebagai guru BK)';
}
if ($row_konseling['total'] > 0) {
    $total_used += $row_konseling['total'];
    $used_in[] = $row_konseling['total'] . ' sesi konseling (sebagai guru BK)';
}
if ($row_siswa['total'] > 0) {
    $total_used += $row_siswa['total'];
    $used_in[] = 'data siswa (' . $row_siswa['siswa_list'] . ')';
}

if ($total_used > 0) {
    $_SESSION['modal_title'] = 'Tidak Dapat Dihapus!';
    $_SESSION['modal_message'] = 'Pengguna ini sedang digunakan pada: <br><strong>' . implode('<br>', $used_in) . '</strong><br><br>Hapus atau pindahkan data terkait terlebih dahulu, atau nonaktifkan akun ini.';
    $_SESSION['modal_type'] = 'warning';
    header('Location: index.php');
    exit;
}

// Ambil data untuk informasi
$query = "SELECT nama, username FROM bkcare_users WHERE id_user = $id";
$result = mysqli_query($conn, $query);
$data = mysqli_fetch_assoc($result);

if (!$data) {
    $_SESSION['modal_title'] = 'Error!';
    $_SESSION['modal_message'] = 'Data pengguna tidak ditemukan';
    $_SESSION['modal_type'] = 'danger';
    header('Location: index.php');
    exit;
}

// Proses hapus
$delete = mysqli_query($conn, "DELETE FROM bkcare_users WHERE id_user = $id");

if ($delete) {
    $_SESSION['modal_title'] = 'Berhasil!';
    $_SESSION['modal_message'] = 'Data pengguna <strong>' . htmlspecialchars($data['nama']) . ' (' . htmlspecialchars($data['username']) . ')</strong> berhasil dihapus';
    $_SESSION['modal_type'] = 'success';
} else {
    $_SESSION['modal_title'] = 'Gagal!';
    $_SESSION['modal_message'] = 'Gagal menghapus data: ' . mysqli_error($conn);
    $_SESSION['modal_type'] = 'danger';
}

header('Location: index.php');
exit;
?>