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

// Check if user is logged in and has admin permission
if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] != 'admin') {
    header('Location: ../login.php');
    exit();
}

$success_message = '';
$error_message = '';

// Handle sync action
if (isset($_POST['sync_students'])) {
    try {
        // Get all students that don't have user accounts
        $stmt = $pdo->query("
            SELECT s.id, s.first_name, s.last_name, s.student_id, s.email 
            FROM students s 
            LEFT JOIN users u ON s.user_id = u.id 
            WHERE u.id IS NULL OR s.user_id IS NULL
        ");
        $students = $stmt->fetchAll();

        $created_count = 0;
        $skipped_count = 0;

        foreach ($students as $student) {
            // Create a default username based on student info
            $username = 'student_' . $student['student_id'];
            $email = !empty($student['email']) ? $student['email'] : $username . '@student.local';
            
            // Ensure unique username and email
            $counter = 1;
            $original_username = $username;
            $original_email = $email;
            
            while (true) {
                $check_username = $pdo->prepare("SELECT COUNT(*) FROM users WHERE username = ?");
                $check_username->execute([$username]);
                $username_exists = $check_username->fetchColumn();
                
                $check_email = $pdo->prepare("SELECT COUNT(*) FROM users WHERE email = ?");
                $check_email->execute([$email]);
                $email_exists = $check_email->fetchColumn();
                
                if ($username_exists == 0 && $email_exists == 0) {
                    break;
                }
                
                $username = $original_username . '_' . $counter;
                $email = $original_email . '_' . $counter . '@student.local';
                $counter++;
            }
            
            // Create default password (you should encourage changing this)
            $default_password = password_hash('student123', PASSWORD_DEFAULT);

            // Insert user account
            $user_stmt = $pdo->prepare("
                INSERT INTO users (username, email, password, role, status)
                VALUES (?, ?, ?, 'student', 'active')
            ");
            $user_stmt->execute([$username, $email, $default_password]);

            // Get the newly created user ID
            $new_user_id = $pdo->lastInsertId();

            // Update the student record to link to the user account
            $update_student = $pdo->prepare("UPDATE students SET user_id = ? WHERE id = ?");
            $update_student->execute([$new_user_id, $student['id']]);

            $created_count++;
        }

        $success_message = "Successfully created user accounts for $created_count students.";
        
    } catch (Exception $e) {
        $error_message = "Error syncing students: " . $e->getMessage();
    }
}

// Get statistics
$stmt = $pdo->query("SELECT COUNT(*) as total FROM students");
$total_students = $stmt->fetch()['total'];

$stmt = $pdo->query("
    SELECT COUNT(*) as without_account 
    FROM students s 
    LEFT JOIN users u ON s.user_id = u.id 
    WHERE u.id IS NULL OR s.user_id IS NULL
");
$students_without_accounts = $stmt->fetch()['without_account'];

$stmt = $pdo->prepare("SELECT COUNT(*) as student_users FROM users WHERE role = ?");
$stmt->execute(['student']);
$student_users = $stmt->fetch()['student_users'];
?>

<!DOCTYPE html>
<html lang="bn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>স্টুডেন্ট সিঙ্ক করুন - ইউজার ব্যবস্থাপনা</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
</head>
<body>
    <div class="container mt-4">
        <div class="row">
            <div class="col-md-12">
                <h2><i class="fas fa-sync-alt"></i> স্টুডেন্ট এবং ইউজার একাউন্ট সিঙ্ক করুন</h2>
                <p class="text-muted">এই পেজটি স্টুডেন্ট ডাটাবেসে যেসব স্টুডেন্ট আছে কিন্তু ইউজার একাউন্ট নেই তাদের জন্য ইউজার একাউন্ট তৈরি করবে</p>
            </div>
        </div>

        <?php if ($success_message): ?>
            <div class="alert alert-success alert-dismissible fade show" role="alert">
                <i class="fas fa-check-circle"></i> <?php echo $success_message; ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
        <?php endif; ?>
        
        <?php if ($error_message): ?>
            <div class="alert alert-danger alert-dismissible fade show" role="alert">
                <i class="fas fa-exclamation-triangle"></i> <?php echo $error_message; ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
        <?php endif; ?>

        <div class="row mb-4">
            <div class="col-md-3">
                <div class="card bg-primary text-white">
                    <div class="card-body text-center">
                        <h4><?php echo $total_students; ?></h4>
                        <p class="mb-0">মোট স্টুডেন্ট</p>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="card bg-warning text-white">
                    <div class="card-body text-center">
                        <h4><?php echo $students_without_accounts; ?></h4>
                        <p class="mb-0">অ্যাকাউন্টহীন স্টুডেন্ট</p>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="card bg-success text-white">
                    <div class="card-body text-center">
                        <h4><?php echo $student_users; ?></h4>
                        <p class="mb-0">স্টুডেন্ট ইউজার একাউন্ট</p>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="card bg-info text-white">
                    <div class="card-body text-center">
                        <h4><?php echo max(0, $total_students - $students_without_accounts); ?></h4>
                        <p class="mb-0">একাউন্টসহ স্টুডেন্ট</p>
                    </div>
                </div>
            </div>
        </div>

        <?php if ($students_without_accounts > 0): ?>
            <div class="row">
                <div class="col-md-12">
                    <div class="card">
                        <div class="card-header">
                            <h5><i class="fas fa-user-plus"></i> স্টুডেন্ট ইউজার একাউন্ট তৈরি করুন</h5>
                        </div>
                        <div class="card-body">
                            <div class="alert alert-info">
                                <i class="fas fa-info-circle"></i> 
                                <strong>তথ্য:</strong> আপনার ডাটাবেসে <?php echo $students_without_accounts; ?> টি স্টুডেন্ট রয়েছে যাদের ইউজার একাউন্ট নেই। 
                                এই ফাংশনটি তাদের জন্য অটোমেটিক ইউজার একাউন্ট তৈরি করবে।
                            </div>
                            
                            <form method="POST" onsubmit="return confirm('আপনি কি নিশ্চিত? এটি ' + <?php echo $students_without_accounts; ?> + ' টি নতুন ইউজার একাউন্ট তৈরি করবে।');">
                                <input type="hidden" name="sync_students" value="1">
                                <button type="submit" class="btn btn-success">
                                    <i class="fas fa-sync-alt"></i> স্টুডেন্ট এবং ইউজার একাউন্ট সিঙ্ক করুন
                                </button>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        <?php else: ?>
            <div class="row">
                <div class="col-md-12">
                    <div class="alert alert-success">
                        <i class="fas fa-check-circle"></i> 
                        <strong>সব স্টুডেন্টের ইউজার একাউন্ট রয়েছে!</strong> 
                        আপনার সব স্টুডেন্টের জন্য ইউজার একাউন্ট তৈরি করা হয়েছে।
                    </div>
                </div>
            </div>
        <?php endif; ?>

        <div class="row mt-4">
            <div class="col-md-12">
                <a href="users.php" class="btn btn-primary">
                    <i class="fas fa-arrow-left"></i> ইউজার ব্যবস্থাপনায় ফিরে যান
                </a>
            </div>
        </div>
    </div>

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