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

// Cek login
checkLogin();

$current_user = getCurrentUser();

// Cek permission (hanya admin dan guru_bk yang boleh hapus)
if (!in_array($current_user['role'], ['admin', 'guru_bk'])) {
    $_SESSION['error_message'] = 'Anda tidak memiliki izin untuk menghapus data siswa';
    $_SESSION['error_title'] = 'Akses Ditolak!';
    header('Location: index.php');
    exit;
}

// Ambil ID dari URL
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;

if ($id <= 0) {
    $_SESSION['error_message'] = 'ID siswa tidak valid';
    $_SESSION['error_title'] = 'Error!';
    header('Location: index.php');
    exit;
}

// Ambil data siswa untuk validasi dan logging
$query = "SELECT s.*, u.id_user, u.username 
          FROM bkcare_siswa s 
          LEFT JOIN bkcare_users u ON s.id_user = u.id_user 
          WHERE s.id_siswa = $id";
$result = mysqli_query($conn, $query);
$siswa = mysqli_fetch_assoc($result);

if (!$siswa) {
    $_SESSION['error_message'] = 'Data siswa tidak ditemukan';
    $_SESSION['error_title'] = 'Error!';
    header('Location: index.php');
    exit;
}

// Proses hapus data
mysqli_begin_transaction($conn);

try {
    // Hapus data terkait (ON DELETE CASCADE akan menghapus data di tabel lain)
    // Tapi kita perlu hapus user secara manual karena ON DELETE SET NULL
    
    // 1. Hapus data siswa (akan cascade ke tabel terkait)
    $delete_siswa = "DELETE FROM bkcare_siswa WHERE id_siswa = $id";
    if (!mysqli_query($conn, $delete_siswa)) {
        throw new Exception('Gagal menghapus data siswa: ' . mysqli_error($conn));
    }
    
    // 2. Hapus user terkait jika ada
    if ($siswa['id_user']) {
        $delete_user = "DELETE FROM bkcare_users WHERE id_user = " . $siswa['id_user'];
        if (!mysqli_query($conn, $delete_user)) {
            throw new Exception('Gagal menghapus akun user: ' . mysqli_error($conn));
        }
    }
    
    mysqli_commit($conn);
    
    // Log aktivitas
    // logActivity($conn, $current_user['id_user'], 'DELETE', 'siswa', $id, 
    //             'Menghapus data siswa: ' . $siswa['nama'] . ' (NIS: ' . $siswa['nis'] . ')');
    
    $_SESSION['success_message'] = 'Data siswa <strong>' . htmlspecialchars($siswa['nama']) . '</strong> berhasil dihapus.';
    $_SESSION['success_title'] = 'Berhasil!';
    
} catch (Exception $e) {
    mysqli_rollback($conn);
    
    $_SESSION['error_message'] = $e->getMessage();
    $_SESSION['error_title'] = 'Gagal Menghapus!';
}

// Redirect kembali ke halaman index
header('Location: index.php');
exit;