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

// Enable error reporting for debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo "<h3>ডিবাগিং তথ্য:</h3>";

// Check if user is logged in and has admin role
echo "<p>ইউজার লগইন স্ট্যাটাস: ";
if (!isset($_SESSION['user_id'])) {
    echo "লগইন নেই</p>";
    echo "<p>লগইন পেজে রিডাইরেক্ট করা হচ্ছে...</p>";
    header('Location: ../login.php');
    exit();
}

echo "লগইন আছে (ID: " . $_SESSION['user_id'] . ")</p>";

echo "<p>ইউজার রোল: ";
if ($_SESSION['user_role'] !== 'admin') {
    echo $_SESSION['user_role'] . " (অ্যাডমিন নয়)</p>";
    echo "<p>লগইন পেজে রিডাইরেক্ট করা হচ্ছে...</p>";
    header('Location: ../login.php');
    exit();
}
echo "admin</p>";

// Get student ID from URL
$student_id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
echo "<p>স্টুডেন্ট আইডি: $student_id</p>";

if ($student_id <= 0) {
    echo "<p>অবৈধ স্টুডেন্ট আইডি</p>";
    $_SESSION['error'] = 'অবৈধ ছাত্র আইডি।';
    header('Location: list.php');
    exit();
}

try {
    echo "<p>ডাটাবেস ট্রানজেকশন শুরু...</p>";
    $pdo->beginTransaction();
    
    // First, get student information to check if exists and get user_id
    echo "<p>স্টুডেন্ট তথ্য খোঁজা হচ্ছে...</p>";
    $stmt = $pdo->prepare("SELECT id, user_id, first_name, last_name, photo FROM students WHERE id = ?");
    $stmt->execute([$student_id]);
    $student = $stmt->fetch();
    
    if (!$student) {
        echo "<p>স্টুডেন্ট পাওয়া যায়নি</p>";
        $pdo->rollBack();
        $_SESSION['error'] = 'ছাত্র খুঁজে পাওয়া যায়নি।';
        header('Location: list.php');
        exit();
    }
    
    echo "<p>স্টুডেন্ট পাওয়া গেছে: " . $student['first_name'] . " " . $student['last_name'] . "</p>";
    echo "<p>ইউজার আইডি: " . ($student['user_id'] ? $student['user_id'] : 'নেই') . "</p>";
    echo "<p>ফটো: " . ($student['photo'] ? $student['photo'] : 'নেই') . "</p>";
    
    // Check for related records first
    echo "<p>সম্পর্কিত রেকর্ড চেক করা হচ্ছে...</p>";
    
    // Check attendance records
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM attendance WHERE student_id = ?");
    $stmt->execute([$student_id]);
    $attendance_count = $stmt->fetchColumn();
    echo "<p>উপস্থিতি রেকর্ড: $attendance_count</p>";
    
    // Check results records
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM results WHERE student_id = ?");
    $stmt->execute([$student_id]);
    $results_count = $stmt->fetchColumn();
    echo "<p>ফলাফল রেকর্ড: $results_count</p>";
    
    // Check student_subjects records
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM student_subjects WHERE student_id = ?");
    $stmt->execute([$student_id]);
    $subjects_count = $stmt->fetchColumn();
    echo "<p>বিষয় রেকর্ড: $subjects_count</p>";
    
    // Check fees records
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM fees WHERE student_id = ?");
    $stmt->execute([$student_id]);
    $fees_count = $stmt->fetchColumn();
    echo "<p>ফি রেকর্ড: $fees_count</p>";
    
    // Delete student photo if exists
    if (!empty($student['photo'])) {
        $photo_path = '../uploads/students/' . $student['photo'];
        echo "<p>ফটো পাথ: $photo_path</p>";
        if (file_exists($photo_path)) {
            echo "<p>ফটো ফাইল পাওয়া গেছে, মুছে ফেলা হচ্ছে...</p>";
            if (@unlink($photo_path)) {
                echo "<p>ফটো সফলভাবে মুছে ফেলা হয়েছে</p>";
            } else {
                echo "<p>ফটো মুছতে সমস্যা হয়েছে</p>";
            }
        } else {
            echo "<p>ফটো ফাইল পাওয়া যায়নি</p>";
        }
    }
    
    // Try to delete the student record
    echo "<p>স্টুডেন্ট রেকর্ড মুছে ফেলার চেষ্টা...</p>";
    $stmt = $pdo->prepare("DELETE FROM students WHERE id = ?");
    $result = $stmt->execute([$student_id]);
    $affected_rows = $stmt->rowCount();
    
    echo "<p>DELETE কমান্ড রেজাল্ট: " . ($result ? 'সফল' : 'ব্যর্থ') . "</p>";
    echo "<p>প্রভাবিত রো: $affected_rows</p>";
    
    // If student has a user_id, also delete the user account
    if (!empty($student['user_id'])) {
        echo "<p>ইউজার অ্যাকাউন্ট মুছে ফেলার চেষ্টা...</p>";
        $stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");
        $user_result = $stmt->execute([$student['user_id']]);
        $user_affected_rows = $stmt->rowCount();
        
        echo "<p>ইউজার DELETE কমান্ড রেজাল্ট: " . ($user_result ? 'সফল' : 'ব্যর্থ') . "</p>";
        echo "<p>ইউজার প্রভাবিত রো: $user_affected_rows</p>";
    }
    
    echo "<p>ট্রানজেকশন কমিট করা হচ্ছে...</p>";
    $pdo->commit();
    
    echo "<p style='color: green;'>সফলভাবে মুছে ফেলা হয়েছে!</p>";
    $_SESSION['success'] = 'ছাত্র "' . $student['first_name'] . ' ' . $student['last_name'] . '" সফলভাবে মুছে ফেলা হয়েছে।';
    
    echo "<p><a href='list.php'>স্টুডেন্ট লিস্টে ফিরে যান</a></p>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>এরর হয়েছে: " . $e->getMessage() . "</p>";
    echo "<p>এরর ফাইল: " . $e->getFile() . "</p>";
    echo "<p>এরর লাইন: " . $e->getLine() . "</p>";
    
    if ($pdo->inTransaction()) {
        echo "<p>ট্রানজেকশন রোলব্যাক করা হচ্ছে...</p>";
        $pdo->rollBack();
    }
    $_SESSION['error'] = 'ছাত্র মুছে ফেলতে ব্যর্থ: ' . $e->getMessage();
}

echo "<p><strong>ডিবাগিং সম্পন্ন</strong></p>";
?>