<?php
// delete_college.php
// 1. بدء الجلسة
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

include '../../includes/header.php'; 

// 2. التحقق من الصلاحية
checkLogin();
if (!hasPermission('edit_college')) {
    $_SESSION['error_message'] = 'ليس لديك صلاحية لحذف الكليات.';
    header('Location: index.php');
    exit();
}

// 3. التحقق من المعرف
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    $id = (int)$_GET['id'];
    $db = getDB();

    try {
        // بدء معاملة (Transaction)
        if (method_exists($db, 'beginTransaction')) {
            $db->beginTransaction();
        }

        // ---------------------------------------------------------
        // دالة مساعدة لتنفيذ الاستعلام حسب الميثود المتاح في الكلاس
        // ---------------------------------------------------------
        function executeQuery($db, $sql, $params) {
            if (method_exists($db, 'delete')) {
                $db->delete($sql, $params);
            } elseif (method_exists($db, 'query')) {
                $db->query($sql, $params);
            } elseif (method_exists($db, 'select')) {
                // بعض الكلاسات تستخدم select لكل شيء
                $db->select($sql, $params);
            }
        }

        // =========================================================
        // خطوة 1: حذف وثائق الطلاب في هذه الكلية
        // =========================================================
        $sql_docs = "DELETE FROM students_doc WHERE Student_ID IN (SELECT id FROM students WHERE College_ID = ?)";
        executeQuery($db, $sql_docs, [$id]);

        // =========================================================
        // خطوة 2: حذف جميع الطلاب في هذه الكلية
        // =========================================================
        $sql_students = "DELETE FROM students WHERE College_ID = ?";
        executeQuery($db, $sql_students, [$id]);

        // =========================================================
        // خطوة 3: حذف جميع التدريسيين في هذه الكلية
        // =========================================================
        $sql_faculty = "DELETE FROM faculty WHERE College_ID = ?";
        executeQuery($db, $sql_faculty, [$id]);

        // =========================================================
        // خطوة 4: حذف جميع الأقسام في هذه الكلية
        // =========================================================
        $sql_depts = "DELETE FROM departemenets WHERE College_ID = ?";
        executeQuery($db, $sql_depts, [$id]);

        // =========================================================
        // خطوة 5: حذف الكلية نفسها
        // =========================================================
        $sql_college = "DELETE FROM colleges WHERE College_ID = ?";
        executeQuery($db, $sql_college, [$id]);


        // حفظ التغييرات
        if (method_exists($db, 'commit')) {
            $db->commit();
        }

        $_SESSION['success_message'] = 'تم حذف الكلية وجميع الأقسام والطلاب والأساتذة التابعين لها بنجاح.';

    } catch (Exception $e) {
        // التراجع في حال الخطأ
        if (method_exists($db, 'rollBack')) {
            $db->rollBack();
        }
        
        // تجاهل أخطاء الـ fetch التي قد تحدث عند تنفيذ delete
        if (strpos($e->getMessage(), 'fetch') !== false || strpos($e->getMessage(), 'SQLSTATE[HY000]') !== false) {
             $_SESSION['success_message'] = 'تم حذف الكلية بنجاح.';
        } else {
             $_SESSION['error_message'] = 'حدث خطأ: ' . $e->getMessage();
        }
    }
} else {
    $_SESSION['error_message'] = 'رقم الكلية غير صحيح.';
}

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