<?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()) {
    requireCsrf();
    $action = (string)($_POST['action'] ?? '');
    try {
        if ($action === 'delete') {
            $id = (int)($_POST['delete_id'] ?? 0);
            $row = safeFetch($pdo, 'SELECT id,course_id FROM core_homework WHERE id=?', [$id]);
            if (!$row) throw new RuntimeException('Homework not found.');
            $submissionCount = tableExists($pdo,'core_homework_submissions') ? safeCount($pdo,'SELECT COUNT(*) FROM core_homework_submissions WHERE homework_id=?',[$id]) : 0;
            if ($submissionCount > 0) {
                safeExecute($pdo, "UPDATE core_homework SET status='inactive',updated_at=NOW() WHERE id=?", [$id]);
                flash('success','Homework has submissions, so it was archived instead of deleted.');
            } else {
                safeExecute($pdo,'DELETE FROM core_homework WHERE id=?',[$id]);
                flash('success','Homework deleted successfully.');
            }
            logActivity($pdo,'admin',(int)($admin['id']??0),'Homework removed','Homework ID '.$id,null,(int)$row['course_id']);
            redirect('admin/homework.php');
        }

        if ($action === 'create') {
            $courseId=(int)($_POST['course_id']??0);
            $title=trim((string)($_POST['title']??''));
            $description=trim((string)($_POST['description']??''));
            $dueDate=trim((string)($_POST['due_date']??''));
            $maxScore=max(0.5,min(1000,(float)($_POST['max_score']??10)));
            $status=(string)($_POST['status']??'active');
            $course=safeFetch($pdo,'SELECT id,teacher_id FROM core_courses WHERE id=?',[$courseId]);
            if(!$course||$title==='') throw new RuntimeException('Select a valid course and enter a title.');
            if($dueDate!==''&&!validDate($dueDate)) throw new RuntimeException('Due date is invalid.');
            if(!in_array($status,['active','inactive','closed'],true)) throw new RuntimeException('Invalid status.');
            safeExecute($pdo,"INSERT INTO core_homework (course_id,teacher_id,title,description,due_date,max_points,max_score,points,weight,status,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?,10,?,NOW(),NOW())",[$courseId,(int)$course['teacher_id'],$title,$description?:null,$dueDate?:null,$maxScore,$maxScore,$maxScore,$status]);
            logActivity($pdo,'admin',(int)($admin['id']??0),'Homework created','Created homework: '.$title,null,$courseId);
            flash('success','Homework created successfully.');
            redirect('admin/homework.php');
        }
    } catch(Throwable $e) {
        error_log('[SMI admin homework] '.$e->getMessage());
        $error = APP_DEBUG ? $e->getMessage() : $e->getMessage();
    }
}

/*
|--------------------------------------------------------------------------
| Courses
|--------------------------------------------------------------------------
*/

$courses = [];

if (tableExists($pdo, 'core_courses')) {

    $courses = $pdo->query("
        SELECT id, title, level
        FROM core_courses
        ORDER BY id DESC
    ")->fetchAll();
}

/*
|--------------------------------------------------------------------------
| Teachers
|--------------------------------------------------------------------------
*/

$teachers = [];

if (tableExists($pdo, 'core_teachers')) {

    $teachers = $pdo->query("
        SELECT
            id,
            full_name,
            name,
            email
        FROM core_teachers
        ORDER BY id DESC
    ")->fetchAll();
}

/*
|--------------------------------------------------------------------------
| Homework List
|--------------------------------------------------------------------------
*/

$homework = [];

if (tableExists($pdo, 'core_homework')) {

    $stmt = $pdo->query("
        SELECT

            h.*,

            c.title AS course_title,

            t.full_name AS teacher_full_name,
            t.name AS teacher_name

        FROM core_homework h

        LEFT JOIN core_courses c
            ON c.id = h.course_id

        LEFT JOIN core_teachers t
            ON t.id = h.teacher_id

        ORDER BY h.id DESC
    ");

    $homework =
        $stmt->fetchAll();
}

?>

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">

<meta
name="viewport"
content="width=device-width, initial-scale=1.0">

<title>
Homework 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;
}

.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;
}

textarea.form-control{
    min-height:120px;
}

.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;
}

.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">
            Homework 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>
                Create Homework
            </h2>

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

                <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>

                <p style="color:#64748b;font-size:13px;margin:-4px 0 18px">The teacher is assigned automatically from the selected course.</p>

                <div class="form-group">

                    <label>
                        Homework Title
                    </label>

                    <input
                    type="text"
                    name="title"
                    class="form-control"
                    required>

                </div>

                <div class="form-group">

                    <label>
                        Description
                    </label>

                    <textarea
                    name="description"
                    class="form-control"></textarea>

                </div>

                <div class="form-group">

                    <label>
                        Due Date
                    </label>

                    <input
                    type="date"
                    name="due_date"
                    class="form-control">

                </div>

                <div class="form-group">

                    <label>
                        Max Score
                    </label>

                    <input
                    type="number"
                    step="0.1"
                    name="max_score"
                    value="100"
                    class="form-control">

                </div>

                <div class="form-group">

                    <label>
                        Status
                    </label>

                    <select
                    name="status"
                    class="form-control">

                        <option value="active">
                            Active
                        </option>

                        <option value="closed">
                            Closed
                        </option>

                    </select>

                </div>

                <button
                type="submit"
                class="submit-btn">

                    Create Homework

                </button>

            </form>

        </div>

        <div class="card">

            <h2>
                Homework List
            </h2>

            <div class="table-wrap">

                <table>

                    <thead>

                        <tr>

                            <th>Homework</th>
                            <th>Course</th>
                            <th>Teacher</th>
                            <th>Due Date</th>
                            <th>Max Score</th>
                            <th>Status</th>
                            <th>Action</th>

                        </tr>

                    </thead>

                    <tbody>

                    <?php if($homework): ?>

                        <?php foreach($homework as $row): ?>

                            <tr>

                                <td>

                                    <?php
                                    echo e(
                                        $row['title']
                                    );
                                    ?>

                                </td>

                                <td>

                                    <?php
                                    echo e(
                                        $row['course_title']
                                        ?? 'N/A'
                                    );
                                    ?>

                                </td>

                                <td>

                                    <?php
                                    echo e(
                                        $row['teacher_full_name']
                                        ?? $row['teacher_name']
                                        ?? 'N/A'
                                    );
                                    ?>

                                </td>

                                <td>

                                    <?php
                                    echo e(
                                        $row['due_date']
                                        ?? '-'
                                    );
                                    ?>

                                </td>

                                <td>

                                    <?php
                                    echo e(
                                        $row['max_score']
                                    );
                                    ?>

                                </td>

                                <td>

                                    <span class="badge">

                                        <?php
                                        echo e(
                                            ucfirst(
                                                $row['status']
                                            )
                                        );
                                        ?>

                                    </span>

                                </td>

                                <td>

                                    <form method="post" style="display:inline" onsubmit="return confirm('Delete this homework?')">
<?php echo csrfField(); ?>
<input type="hidden" name="action" value="delete">
<input type="hidden" name="delete_id" value="<?php echo e((string)$row['id']); ?>">
<button type="submit" class="action-btn delete-btn">Delete</button>
</form>

                                </td>

                            </tr>

                        <?php endforeach; ?>

                    <?php else: ?>

                        <tr>

                            <td colspan="7">

                                No homework found.

                            </td>

                        </tr>

                    <?php endif; ?>

                    </tbody>

                </table>

            </div>

        </div>

    </div>

</div>

</body>
</html>