<?php
require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/auth.php';

Auth()->requireRole(['super_admin', 'admin']);
$db = DB();
$flash = getFlashMessage();

$courseId = intval($_GET['course_id'] ?? 0);
$course = $db->fetchOne("SELECT * FROM courses WHERE id = ?", [$courseId]);

if (!$course) {
    die("Course not found.");
}

// Edit Subject Fetch
$editSub = null;
if (isset($_GET['edit_id'])) {
    $editSub = $db->fetchOne("SELECT * FROM subjects WHERE id = ? AND course_id = ?", [intval($_GET['edit_id']), $courseId]);
}

// Add/Edit Subject Save
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['save_subject'])) {
    $name = cleanInput($_POST['subject_name']);
    $type = $_POST['type'];
    $max = intval($_POST['max_marks']);
    $pass = intval($_POST['pass_marks']);
    $sid = intval($_POST['subject_id'] ?? 0);

    if ($name && $max > 0) {
        $data = [
            'course_id' => $courseId,
            'subject_name' => $name,
            'type' => $type,
            'max_marks' => $max,
            'pass_marks' => $pass
        ];

        if ($sid > 0) {
            $db->update('subjects', $data, ['id' => $sid]);
            $msg = "Subject updated successfully!";
        } else {
            $db->insert('subjects', $data);
            $msg = "Subject added successfully!";
        }
        redirectWithMessage("manage-subjects.php?course_id=$courseId", $msg, "success");
    }
}

// Delete Subject
if (isset($_GET['delete_id'])) {
    $db->query("DELETE FROM subjects WHERE id = ? AND course_id = ?", [intval($_GET['delete_id']), $courseId]);
    redirectWithMessage("manage-subjects.php?course_id=$courseId", "Subject deleted.", "info");
}

$subjects = $db->fetchAll("SELECT * FROM subjects WHERE course_id = ? ORDER BY type, subject_name", [$courseId]);
?>
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Manage Subjects - <?= htmlspecialchars($course['course_name']) ?></title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <link href="../assets/css/admin-style.css" rel="stylesheet">
</head><body>

    <?php include __DIR__ . '/../includes/admin_header.php'; ?>
    
    <div class="container-fluid">
        <div class="row">
            <?php include __DIR__ . '/../includes/admin_sidebar.php'; ?>
            
            <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4 py-4">
                <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
                    <div>
                        <h1 class="h2"><i class="fas fa-book me-2 text-primary"></i>Manage Subjects</h1>
                        <p class="text-muted small mb-0">Course: <strong><?= htmlspecialchars($course['course_name']) ?></strong> (<?= $course['course_code'] ?>)</p>
                    </div>
                    <div class="btn-toolbar mb-2 mb-md-0">
                        <a href="courses.php" class="btn btn-sm btn-outline-secondary">
                            <i class="fas fa-arrow-left me-1"></i>Back to Courses
                        </a>
                    </div>
                </div>

    <?php if($flash):?><div class="alert alert-<?=$flash['type']?>"><?=$flash['message']?></div><?php endif;?>

    <div class="row g-4">
        <!-- Add Form -->
        <div class="col-lg-4">
            <div class="card p-4 shadow-sm border-0">
                <div class="d-flex justify-content-between align-items-center mb-3">
                    <h5 class="fw-bold mb-0"><?= $editSub ? 'Edit Subject' : 'Add New Subject' ?></h5>
                    <?php if($editSub): ?><a href="?course_id=<?= $courseId ?>" class="btn btn-sm btn-light">New</a><?php endif; ?>
                </div>
                <form method="POST">
                    <input type="hidden" name="save_subject" value="1">
                    <input type="hidden" name="subject_id" value="<?= $editSub['id'] ?? 0 ?>">
                    <div class="mb-3">
                        <label class="small fw-bold">Subject Name</label>
                        <input type="text" name="subject_name" class="form-control" placeholder="e.g. Fundamental of Nursing" value="<?= htmlspecialchars($editSub['subject_name'] ?? '') ?>" required>
                    </div>
                    <div class="mb-3">
                        <label class="small fw-bold">Type</label>
                        <select name="type" class="form-select">
                            <option value="Theory" <?= ($editSub['type']??'')=='Theory'?'selected':'' ?>>Theory</option>
                            <option value="Practical" <?= ($editSub['type']??'')=='Practical'?'selected':'' ?>>Practical / Viva</option>
                        </select>
                    </div>
                    <div class="row g-2 mb-3">
                        <div class="col-6">
                            <label class="small fw-bold">Max Marks</label>
                            <input type="number" name="max_marks" class="form-control" value="<?= $editSub['max_marks'] ?? 100 ?>" required>
                        </div>
                        <div class="col-6">
                            <label class="small fw-bold">Pass Marks</label>
                            <input type="number" name="pass_marks" class="form-control" value="<?= $editSub['pass_marks'] ?? 30 ?>" required>
                        </div>
                    </div>
                    <button type="submit" class="btn btn-primary w-100 fw-bold"><?= $editSub ? 'Update Subject' : 'Add Subject' ?></button>
                </form>
            </div>
        </div>

        <!-- Subjects List -->
        <div class="col-lg-8">
            <div class="card overflow-hidden shadow-sm border-0">
                <div class="table-responsive">
                    <table class="table table-hover align-middle mb-0">
                        <thead>
                            <tr>
                                <th class="ps-3">S.No</th>
                                <th>Subject Name</th>
                                <th>Type</th>
                                <th>Max</th>
                                <th>Pass</th>
                                <th class="text-center" style="width: 120px;">Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php if(empty($subjects)):?>
                                <tr><td colspan="6" class="text-center py-5 text-muted">No subjects added yet.</td></tr>
                            <?php endif;?>
                            <?php foreach($subjects as $i => $s): ?>
                            <tr>
                                <td class="ps-3 small text-muted"><?= $i+1 ?></td>
                                <td class="fw-bold"><?= htmlspecialchars($s['subject_name']) ?></td>
                                <td><span class="badge bg-<?= $s['type']=='Theory'?'primary':'info' ?> small"><?= $s['type'] ?></span></td>
                                <td class="fw-bold"><?= $s['max_marks'] ?></td>
                                <td class="text-danger fw-bold"><?= $s['pass_marks'] ?></td>
                                <td class="text-center">
                                    <div class="d-flex justify-content-center gap-1">
                                        <a href="?course_id=<?= $courseId ?>&edit_id=<?= $s['id'] ?>" class="btn btn-sm btn-primary px-2" title="Edit">
                                            <i class="fas fa-edit me-1"></i> Edit
                                        </a>
                                        <a href="?course_id=<?= $courseId ?>&delete_id=<?= $s['id'] ?>" class="btn btn-sm btn-danger px-2" onclick="return confirm('Delete this subject?')" title="Delete">
                                            <i class="fas fa-trash me-1"></i> Delete
                                        </a>
                                    </div>
                                </td>
                            </tr>
                            <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</main>
</div>
</div>

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