<?php
declare(strict_types=1);

require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/functions.php';
require_once __DIR__ . '/../includes/admin-auth.php';

$pdo = db();

requireAdmin();

if (isPost()) { requireCsrf(); }

$success = flash('success') ?: '';
$error = '';
$admin = currentAdmin($pdo);
if(isPost()){$action=(string)($_POST['action']??'');try{
 if($action==='delete'){$id=(int)($_POST['delete_id']??0);$session=safeFetch($pdo,'SELECT id,course_id FROM core_sessions WHERE id=?',[$id]);if(!$session)throw new RuntimeException('Session not found.');$attendance=tableExists($pdo,'core_attendance')?safeCount($pdo,'SELECT COUNT(*) FROM core_attendance WHERE core_session_id=? OR session_id=?',[$id,$id]):0;if($attendance>0){mustExecute($pdo,"UPDATE core_sessions SET status='cancelled',updated_at=NOW() WHERE id=?",[$id]);flash('success','The session has attendance records, so it was cancelled instead of deleted.');}else{mustExecute($pdo,'DELETE FROM core_sessions WHERE id=?',[$id]);flash('success','Session deleted.');}logActivity($pdo,'admin',(int)($admin['id']??0),'Session removed','Session ID '.$id,null,(int)$session['course_id']);redirect('admin/sessions.php');}
 if($action==='add_session'){$courseId=(int)($_POST['course_id']??0);$title=trim((string)($_POST['title']??''));$date=trim((string)($_POST['session_date']??''));$time=trim((string)($_POST['session_time']??''));$zoom=trim((string)($_POST['zoom_link']??''));$lesson=trim((string)($_POST['lesson_link']??''));$notes=trim((string)($_POST['teacher_notes']??''));$course=safeFetch($pdo,'SELECT id,teacher_id FROM core_courses WHERE id=?',[$courseId]);if(!$course||$title===''||!validDate($date)||!preg_match('/^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$/',$time))throw new RuntimeException('Select a course and enter valid session details.');if($zoom!==''&&!filter_var($zoom,FILTER_VALIDATE_URL))throw new RuntimeException('Zoom link is invalid.');if($lesson!==''&&!filter_var($lesson,FILTER_VALIDATE_URL))throw new RuntimeException('Lesson link is invalid.');mustExecute($pdo,"INSERT INTO core_sessions (course_id,teacher_id,title,session_date,session_time,zoom_link,lesson_link,teacher_notes,status,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?, 'scheduled',NOW(),NOW())",[$courseId,(int)$course['teacher_id'],$title,$date,$time,$zoom?:null,$lesson?:null,$notes?:null]);logActivity($pdo,'admin',(int)($admin['id']??0),'Session created','Created session: '.$title,null,$courseId);flash('success','Session added successfully.');redirect('admin/sessions.php');}
}catch(Throwable $e){error_log('[SMI admin sessions] '.$e->getMessage());$error=APP_DEBUG?$e->getMessage():$e->getMessage();}}

$courses = tableExists($pdo, 'core_courses')
    ? $pdo->query("SELECT id, title FROM core_courses ORDER BY id DESC")->fetchAll()
    : [];

$teachers = tableExists($pdo, 'core_teachers')
    ? $pdo->query("SELECT id, full_name, name, email FROM core_teachers ORDER BY id DESC")->fetchAll()
    : [];

$sessions = [];

if (tableExists($pdo, 'core_sessions')) {
    $sessions = $pdo->query("
        SELECT
            s.*,
            c.title AS course_title,
            t.full_name AS teacher_full_name,
            t.name AS teacher_name
        FROM core_sessions s
        LEFT JOIN core_courses c ON c.id = s.course_id
        LEFT JOIN core_teachers t ON t.id = s.teacher_id
        ORDER BY s.session_date DESC, s.session_time DESC
    ")->fetchAll();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sessions Management</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',sans-serif;background:#f1f5f9;color:#0f172a}
.page{padding:34px}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}
.page-title{font-size:42px;font-weight:900}
.back-btn{background:#dbeafe;color:#1d4ed8;text-decoration:none;padding:14px 20px;border-radius:18px;font-weight:900}
.grid{display:grid;grid-template-columns:420px 1fr;gap:26px}
.card{background:#fff;border-radius:34px;padding:30px;border:1px solid #e2e8f0;box-shadow:0 18px 45px rgba(15,23,42,.05)}
.card h2{font-size:30px;margin-bottom:22px;font-weight:900}
.form-group{margin-bottom:18px}
.form-group label{display:block;margin-bottom:10px;font-weight:800}
.form-control{width:100%;padding:16px;border-radius:18px;border:1px solid #cbd5e1;outline:none;font-size:14px}
textarea.form-control{min-height:120px;resize:vertical}
.submit-btn{width:100%;border:none;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;padding:18px;border-radius:20px;font-weight:900;cursor:pointer}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th{background:#f8fafc;padding:18px;text-align:left;font-size:13px;text-transform:uppercase;color:#64748b}
td{padding:18px;border-top:1px solid #e2e8f0;font-size:14px;vertical-align:top}
.badge{display:inline-block;padding:8px 12px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:12px;font-weight:900}
.action-btn{padding:10px 14px;border-radius:14px;text-decoration:none;font-size:12px;font-weight:900}
.delete-btn{background:#fee2e2;color:#b91c1c}
.alert{padding:18px;border-radius:18px;margin-bottom:24px;font-weight:800}
.alert-success{background:#dcfce7;color:#166534}
.alert-danger{background:#fee2e2;color:#991b1b}
@media(max-width:1100px){.grid{grid-template-columns:1fr}}
</style>
</head>

<body>

<div class="page">

    <div class="topbar">
        <h1 class="page-title">Sessions Management</h1>
        <a href="dashboard.php" class="back-btn">← Dashboard</a>
    </div>

    <?php if($success): ?>
        <div class="alert alert-success"><?php echo e($success); ?></div>
    <?php endif; ?>

    <?php if($error): ?>
        <div class="alert alert-danger"><?php echo e($error); ?></div>
    <?php endif; ?>

    <div class="grid">

        <div class="card">
            <h2>Add Session</h2>

            <form method="POST">
<?php echo csrfField(); ?>
                <input type="hidden" name="action" value="add_session">

                <div class="form-group">
                    <label>Course</label>
                    <select name="course_id" class="form-control" required>
                        <option value="">Select Course</option>
                        <?php foreach($courses as $course): ?>
                            <option value="<?php echo e((string)$course['id']); ?>">
                                <?php echo e($course['title']); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <div class="form-group">
                    <label>Teacher</label>
                    <select name="teacher_id" class="form-control">
                        <option value="">No Teacher</option>
                        <?php foreach($teachers as $teacher): ?>
                            <option value="<?php echo e((string)$teacher['id']); ?>">
                                <?php echo e($teacher['full_name'] ?? $teacher['name'] ?? $teacher['email']); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <div class="form-group">
                    <label>Session Title</label>
                    <input type="text" name="title" class="form-control" required>
                </div>

                <div class="form-group">
                    <label>Session Date</label>
                    <input type="date" name="session_date" class="form-control" required>
                </div>

                <div class="form-group">
                    <label>Session Time</label>
                    <input type="time" name="session_time" class="form-control" required>
                </div>

                <div class="form-group">
                    <label>Zoom Link</label>
                    <input type="url" name="zoom_link" class="form-control">
                </div>

                <div class="form-group">
                    <label>Lesson Link</label>
                    <input type="url" name="lesson_link" class="form-control">
                </div>

                <div class="form-group">
                    <label>Notes</label>
                    <textarea name="teacher_notes" class="form-control"></textarea>
                </div>

                <button type="submit" class="submit-btn">Add Session</button>
            </form>
        </div>

        <div class="card">
            <h2>Sessions List</h2>

            <div class="table-wrap">
                <table>
                    <thead>
                        <tr>
                            <th>Session</th>
                            <th>Course</th>
                            <th>Teacher</th>
                            <th>Date / Time</th>
                            <th>Links</th>
                            <th>Action</th>
                        </tr>
                    </thead>

                    <tbody>
                    <?php if($sessions): ?>
                        <?php foreach($sessions as $session): ?>
                            <tr>
                                <td><?php echo e($session['title']); ?></td>
                                <td><?php echo e($session['course_title'] ?? 'N/A'); ?></td>
                                <td><?php echo e($session['teacher_full_name'] ?? $session['teacher_name'] ?? 'N/A'); ?></td>
                                <td>
                                    <?php echo e($session['session_date'] ?? '-'); ?>
                                    <br>
                                    <?php echo e($session['session_time'] ?? '-'); ?>
                                </td>
                                <td>
                                    <?php if(!empty($session['zoom_link'])): ?>
                                        <a href="<?php echo e($session['zoom_link']); ?>" target="_blank">Zoom</a>
                                    <?php endif; ?>
                                    <br>
                                    <?php if(!empty($session['lesson_link'])): ?>
                                        <a href="<?php echo e($session['lesson_link']); ?>" target="_blank">Lesson</a>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <form method="post" style="display:inline" onsubmit="return confirm('Delete this session?')">
<?php echo csrfField(); ?>
<input type="hidden" name="action" value="delete">
<input type="hidden" name="delete_id" value="<?php echo e((string)$session['id']); ?>">
<button type="submit" class="action-btn delete-btn">Delete</button>
</form>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    <?php else: ?>
                        <tr><td colspan="6">No sessions found.</td></tr>
                    <?php endif; ?>
                    </tbody>
                </table>
            </div>

        </div>

    </div>

</div>

</body>
</html>