<?php
session_start();
if (!isset($_SESSION['admin_logged_in'])) { header('Location: ../index.php'); exit(); }
if (file_exists(__DIR__ . '/../../db.php')) {
    require_once __DIR__ . '/../../db.php';
} elseif (file_exists(__DIR__ . '/../db.php')) {
    require_once __DIR__ . '/../db.php';
}

if (file_exists(__DIR__ . '/../../result_db_setup.php')) {
    require_once __DIR__ . '/../../result_db_setup.php';
} elseif (file_exists(__DIR__ . '/../result_db_setup.php')) {
    require_once __DIR__ . '/../result_db_setup.php';
} elseif (file_exists(__DIR__ . '/result_db_setup.php')) {
    require_once __DIR__ . '/result_db_setup.php';
}
setupResultTables($conn);

$msg = ''; $err = '';

// Handle Add Student
if ($_POST['action'] ?? '' == 'add') {
    $admission_no = trim($_POST['admission_no']);
    $roll_no      = intval($_POST['roll_no']);
    $first_name   = trim($_POST['first_name']);
    $last_name    = trim($_POST['last_name']);
    $dob          = $_POST['dob'];
    $gender       = $_POST['gender'];
    $father_name  = trim($_POST['father_name']);
    $mother_name  = trim($_POST['mother_name']);
    $mobile       = trim($_POST['mobile']);
    $class_id     = intval($_POST['class_id']);

    $chk = $conn->query("SELECT id FROM result_students WHERE admission_no='".  $conn->real_escape_string($admission_no)."'");
    if ($chk->num_rows > 0) {
        $err = "Admission No already exists!";
    } else {
        $st = $conn->prepare("INSERT INTO result_students (admission_no,roll_no,first_name,last_name,dob,gender,father_name,mother_name,parent_mobile,class_id) VALUES (?,?,?,?,?,?,?,?,?,?)");
        $st->bind_param("sissssssssi",$admission_no,$roll_no,$first_name,$last_name,$dob,$gender,$father_name,$mother_name,$mobile,$class_id);
        // fix bind: 10 params
        $st = $conn->prepare("INSERT INTO result_students (admission_no,roll_no,first_name,last_name,dob,gender,father_name,mother_name,parent_mobile,class_id) VALUES (?,?,?,?,?,?,?,?,?,?)");
        $st->bind_param("siisssssssi",$admission_no,$roll_no,$first_name,$last_name,$dob,$gender,$father_name,$mother_name,$mobile,$class_id);
        // Actually fix properly:
        $adm = $conn->real_escape_string($admission_no);
        $fn  = $conn->real_escape_string($first_name);
        $ln  = $conn->real_escape_string($last_name);
        $dob_e = $conn->real_escape_string($dob);
        $gen = $conn->real_escape_string($gender);
        $fat = $conn->real_escape_string($father_name);
        $mot = $conn->real_escape_string($mother_name);
        $mob = $conn->real_escape_string($mobile);
        $conn->query("INSERT INTO result_students (admission_no,roll_no,first_name,last_name,dob,gender,father_name,mother_name,parent_mobile,class_id) VALUES ('$adm',$roll_no,'$fn','$ln','$dob_e','$gen','$fat','$mot','$mob',$class_id)");
        if ($conn->affected_rows > 0) $msg = "✅ Student added successfully!";
        else $err = "Error: ".$conn->error;
    }
}

// Handle Delete
if (isset($_GET['del'])) {
    $did = intval($_GET['del']);
    $conn->query("DELETE FROM result_students WHERE id=$did");
    $msg = "Student deleted.";
}

// Handle Edit
if ($_POST['action'] ?? '' == 'edit') {
    $id = intval($_POST['student_id']);
    $fn  = $conn->real_escape_string(trim($_POST['first_name']));
    $ln  = $conn->real_escape_string(trim($_POST['last_name']));
    $dob = $conn->real_escape_string($_POST['dob']);
    $gen = $conn->real_escape_string($_POST['gender']);
    $fat = $conn->real_escape_string(trim($_POST['father_name']));
    $mot = $conn->real_escape_string(trim($_POST['mother_name']));
    $mob = $conn->real_escape_string(trim($_POST['mobile']));
    $cid = intval($_POST['class_id']);
    $rno = intval($_POST['roll_no']);
    $conn->query("UPDATE result_students SET first_name='$fn',last_name='$ln',dob='$dob',gender='$gen',father_name='$fat',mother_name='$mot',parent_mobile='$mob',class_id=$cid,roll_no=$rno WHERE id=$id");
    $msg = "✅ Student updated successfully!";
}

// Filters
$filter_class = intval($_GET['class_id'] ?? 0);
$search = $conn->real_escape_string(trim($_GET['s'] ?? ''));

$where = "rs.is_active=1";
if ($filter_class) $where .= " AND rs.class_id=$filter_class";
if ($search) $where .= " AND (rs.first_name LIKE '%$search%' OR rs.last_name LIKE '%$search%' OR rs.admission_no LIKE '%$search%')";

$students = $conn->query("SELECT rs.*, rc.class_name, rc.section, rc.numeric_level 
    FROM result_students rs JOIN result_classes rc ON rs.class_id=rc.id 
    WHERE $where ORDER BY rc.numeric_level, rs.roll_no, rs.first_name");

$classes = $conn->query("SELECT rc.*, rs.session_name FROM result_classes rc JOIN result_sessions rs ON rc.session_id=rs.id ORDER BY rc.numeric_level, rc.section");
$total = $conn->query("SELECT COUNT(*) as c FROM result_students rs JOIN result_classes rc ON rs.class_id=rc.id WHERE $where")->fetch_assoc()['c'];

// For edit modal
$edit_student = null;
if (isset($_GET['edit'])) {
    $eid = intval($_GET['edit']);
    $edit_student = $conn->query("SELECT * FROM result_students WHERE id=$eid")->fetch_assoc();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Manage Students | Result System</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
    <style>
        :root { --primary:#0b3b60; --accent:#f5a623; --dark:#1e293b; --sidebar-w:260px; }
        body { background:#f0f4f8; font-family:'Inter',sans-serif; }
        .sidebar { position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-w);background:linear-gradient(180deg,#0f172a,#1e293b);overflow-y:auto;z-index:1000; }
        .sidebar-brand { padding:22px 20px; border-bottom:1px solid rgba(255,255,255,0.08); }
        .sidebar-brand h5 { color:#fff;font-weight:700;margin:0;font-size:15px; }
        .sidebar-brand small { color:var(--accent);font-size:11px; }
        .sidebar-section { padding:8px 16px 4px;font-size:10px;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:1.2px;font-weight:600;margin-top:8px; }
        .sidebar a { display:flex;align-items:center;gap:10px;color:rgba(255,255,255,0.65);text-decoration:none;padding:10px 20px;font-size:13.5px;transition:0.2s;border-left:3px solid transparent; }
        .sidebar a:hover,.sidebar a.active { color:#fff;background:rgba(255,255,255,0.07);border-left-color:var(--accent); }
        .sidebar a i { width:18px;text-align:center; }
        .main { margin-left:var(--sidebar-w);padding:30px;min-height:100vh; }
        .topbar { display:flex;justify-content:space-between;align-items:center;background:#fff;padding:14px 24px;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,0.06);margin-bottom:24px; }
        .topbar h4 { margin:0;font-weight:700;color:var(--dark);font-size:18px; }
        .card-box { background:#fff;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,0.05);overflow:hidden; }
        .card-box .cb-header { padding:16px 24px;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;align-items:center; }
        .card-box .cb-header h6 { font-weight:700;margin:0;font-size:15px; }
        th { font-size:11.5px;text-transform:uppercase;letter-spacing:0.5px;color:#94a3b8;font-weight:600;padding:12px 14px!important;background:#f8fafc; }
        td { padding:11px 14px!important;font-size:13px;vertical-align:middle; }
        .avatar-circle { width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff; }
        .search-bar { background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 14px;font-size:13px;width:220px; }
        .search-bar:focus { outline:none;border-color:var(--primary); }
        .filter-select { background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 12px;font-size:13px; }
    </style>
</head>
<body>
<div class="sidebar">
    <div class="sidebar-brand"><h5><i class="fas fa-graduation-cap me-2" style="color:var(--accent)"></i>Result System</h5><small>BS Public School</small></div>
    <div class="sidebar-section">Main</div>
    <a href="dashboard.php"><i class="fas fa-tachometer-alt"></i> Dashboard</a>
    <a href="../dashboard.php"><i class="fas fa-arrow-left"></i> Back to Admin</a>
    <div class="sidebar-section">Setup</div>
    <a href="sessions.php"><i class="fas fa-calendar-alt"></i> Sessions</a>
    <a href="classes.php"><i class="fas fa-chalkboard"></i> Classes</a>
    <a href="subjects.php"><i class="fas fa-book"></i> Subjects</a>
    <a href="class_subjects.php"><i class="fas fa-link"></i> Class-Subject Map</a>
    <a href="terms.php"><i class="fas fa-list-ol"></i> Exam Terms</a>
    <a href="exam_structure.php"><i class="fas fa-sitemap"></i> Exam Structure</a>
    <a href="grading.php"><i class="fas fa-star"></i> Grading Scale</a>
    <div class="sidebar-section">Students</div>
    <a href="students.php" class="active"><i class="fas fa-user-graduate"></i> Manage Students</a>
    <a href="student_import.php"><i class="fas fa-file-excel"></i> Bulk Import</a>
    <div class="sidebar-section">Marks</div>
    <a href="marks_entry.php"><i class="fas fa-pen-to-square"></i> Marks Entry</a>
    <a href="attendance.php"><i class="fas fa-calendar-check"></i> Attendance</a>
    <a href="coscholastic.php"><i class="fas fa-palette"></i> Co-Scholastic</a>
    <a href="remarks.php"><i class="fas fa-comment-dots"></i> Remarks</a>
    <div class="sidebar-section">Reports</div>
    <a href="report_card.php"><i class="fas fa-file-invoice"></i> Report Cards</a>
    <a href="analytics.php"><i class="fas fa-chart-bar"></i> Analytics</a>
    <div style="padding:16px 20px;margin-top:20px;"><a href="../logout.php" class="btn btn-outline-danger w-100 btn-sm"><i class="fas fa-sign-out-alt me-1"></i> Logout</a></div>
</div>

<div class="main">
    <div class="topbar">
        <h4><i class="fas fa-user-graduate me-2" style="color:var(--primary)"></i>Students (<?= $total ?>)</h4>
        <button class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#addModal">
            <i class="fas fa-plus me-1"></i> Add Student
        </button>
    </div>

    <?php if ($msg): ?><div class="alert alert-success alert-dismissible fade show mb-3"><i class="fas fa-check-circle me-2"></i><?= $msg ?><button type="button" class="btn-close" data-bs-dismiss="alert"></button></div><?php endif; ?>
    <?php if ($err): ?><div class="alert alert-danger alert-dismissible fade show mb-3"><i class="fas fa-exclamation-circle me-2"></i><?= $err ?><button type="button" class="btn-close" data-bs-dismiss="alert"></button></div><?php endif; ?>

    <!-- Filter bar -->
    <div class="card-box mb-3">
        <div class="p-3">
            <form method="GET" class="d-flex flex-wrap gap-2 align-items-center">
                <input type="text" name="s" placeholder="Search name / admission no..." value="<?= htmlspecialchars($search) ?>" class="search-bar">
                <select name="class_id" class="filter-select" onchange="this.form.submit()">
                    <option value="">All Classes</option>
                    <?php $classes->data_seek(0); while($c=$classes->fetch_assoc()): ?>
                    <option value="<?= $c['id'] ?>" <?= ($filter_class==$c['id']?'selected':'') ?>><?= $c['class_name'].' '.$c['section'].' ('.$c['session_name'].')' ?></option>
                    <?php endwhile; ?>
                </select>
                <button type="submit" class="btn btn-primary btn-sm">🔍 Filter</button>
                <a href="students.php" class="btn btn-outline-secondary btn-sm">Clear</a>
                <a href="student_import.php" class="btn btn-success btn-sm ms-auto"><i class="fas fa-file-excel me-1"></i> Bulk Import CSV</a>
            </form>
        </div>
    </div>

    <div class="card-box">
        <div class="cb-header">
            <h6><i class="fas fa-list me-2 text-primary"></i>Students List</h6>
            <span class="badge bg-primary"><?= $total ?> students</span>
        </div>
        <div class="table-responsive">
            <table class="table mb-0">
                <thead>
                    <tr><th>#</th><th>Student</th><th>Admission No</th><th>Roll</th><th>Class</th><th>DOB</th><th>Father</th><th>Mobile</th><th>Actions</th></tr>
                </thead>
                <tbody>
                    <?php
                    $colors=['#0b3b60','#10b981','#8b5cf6','#f5a623','#ef4444','#3b82f6','#ec4899'];
                    $i=0;
                    if($students && $students->num_rows>0): while($s=$students->fetch_assoc()):
                        $col = $colors[$i % count($colors)]; $i++;
                        $initials = strtoupper(substr($s['first_name'],0,1).substr($s['last_name']?:$s['first_name'],0,1));
                    ?>
                    <tr>
                        <td><?= $i ?></td>
                        <td>
                            <div class="d-flex align-items-center gap-2">
                                <div class="avatar-circle" style="background:<?= $col ?>"><?= $initials ?></div>
                                <div>
                                    <div class="fw-600" style="font-weight:600"><?= htmlspecialchars($s['first_name'].' '.$s['last_name']) ?></div>
                                    <div style="font-size:11px;color:#94a3b8"><?= $s['gender'] ?></div>
                                </div>
                            </div>
                        </td>
                        <td><code style="background:#f1f5f9;padding:2px 7px;border-radius:5px"><?= $s['admission_no'] ?></code></td>
                        <td><?= $s['roll_no'] ?></td>
                        <td><span class="badge bg-primary" style="font-size:11px"><?= $s['class_name'].' '.$s['section'] ?></span></td>
                        <td style="font-size:12px"><?= $s['dob'] ? date('d M Y',strtotime($s['dob'])) : '--' ?></td>
                        <td style="font-size:12px"><?= htmlspecialchars($s['father_name'] ?: '--') ?></td>
                        <td style="font-size:12px"><?= htmlspecialchars($s['parent_mobile'] ?: '--') ?></td>
                        <td>
                            <div class="d-flex gap-1">
                                <a href="?edit=<?= $s['id'] ?>" class="btn btn-sm btn-outline-primary" style="font-size:11px;padding:3px 8px" title="Edit"><i class="fas fa-edit"></i></a>
                                <a href="marks_entry.php?class_id=<?= $s['class_id'] ?>" class="btn btn-sm btn-outline-success" style="font-size:11px;padding:3px 8px" title="Marks"><i class="fas fa-pen"></i></a>
                                <a href="report_card.php?student_id=<?= $s['id'] ?>" class="btn btn-sm btn-outline-info" style="font-size:11px;padding:3px 8px" title="Report Card"><i class="fas fa-file"></i></a>
                                <a href="?del=<?= $s['id'] ?>" class="btn btn-sm btn-outline-danger" style="font-size:11px;padding:3px 8px" title="Delete" onclick="return confirm('Delete this student and all their marks?')"><i class="fas fa-trash"></i></a>
                            </div>
                        </td>
                    </tr>
                    <?php endwhile; else: ?>
                    <tr><td colspan="9" class="text-center py-5 text-muted">
                        <i class="fas fa-user-graduate fa-2x mb-3 d-block" style="opacity:0.3"></i>
                        No students found. <a href="#" data-bs-toggle="modal" data-bs-target="#addModal">Add first student</a>
                    </td></tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<!-- Add Student Modal -->
<div class="modal fade" id="addModal" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header" style="background:linear-gradient(135deg,var(--primary),#1a6ba0);color:#fff">
                <h5 class="modal-title"><i class="fas fa-user-plus me-2"></i>Add New Student</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <form method="POST">
                <input type="hidden" name="action" value="add">
                <div class="modal-body">
                    <div class="row g-3">
                        <div class="col-md-6"><label class="form-label fw-600">First Name *</label><input type="text" name="first_name" class="form-control" required placeholder="e.g. Rahul"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Last Name</label><input type="text" name="last_name" class="form-control" placeholder="e.g. Sharma"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Admission No *</label><input type="text" name="admission_no" class="form-control" required placeholder="BSPS-2025-001"></div>
                        <div class="col-md-3"><label class="form-label fw-600">Roll No</label><input type="number" name="roll_no" class="form-control" placeholder="1"></div>
                        <div class="col-md-3"><label class="form-label fw-600">Gender *</label>
                            <select name="gender" class="form-select" required>
                                <option>Male</option><option>Female</option><option>Other</option>
                            </select>
                        </div>
                        <div class="col-md-6"><label class="form-label fw-600">Date of Birth</label><input type="date" name="dob" class="form-control"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Class & Section *</label>
                            <select name="class_id" class="form-select" required>
                                <option value="">-- Select Class --</option>
                                <?php $classes->data_seek(0); while($c=$classes->fetch_assoc()): ?>
                                <option value="<?= $c['id'] ?>"><?= $c['class_name'].' - Section '.$c['section'] ?></option>
                                <?php endwhile; ?>
                            </select>
                        </div>
                        <div class="col-md-6"><label class="form-label fw-600">Father's Name</label><input type="text" name="father_name" class="form-control" placeholder="Father's full name"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Mother's Name</label><input type="text" name="mother_name" class="form-control" placeholder="Mother's full name"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Parent Mobile</label><input type="text" name="mobile" class="form-control" placeholder="9XXXXXXXXX"></div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
                    <button type="submit" class="btn btn-primary"><i class="fas fa-save me-1"></i> Save Student</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Edit Student Modal -->
<?php if ($edit_student): ?>
<div class="modal fade" id="editModal" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header" style="background:linear-gradient(135deg,#059669,#10b981);color:#fff">
                <h5 class="modal-title"><i class="fas fa-edit me-2"></i>Edit Student</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <form method="POST">
                <input type="hidden" name="action" value="edit">
                <input type="hidden" name="student_id" value="<?= $edit_student['id'] ?>">
                <div class="modal-body">
                    <div class="row g-3">
                        <div class="col-md-6"><label class="form-label fw-600">First Name *</label><input type="text" name="first_name" class="form-control" required value="<?= htmlspecialchars($edit_student['first_name']) ?>"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Last Name</label><input type="text" name="last_name" class="form-control" value="<?= htmlspecialchars($edit_student['last_name']) ?>"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Roll No</label><input type="number" name="roll_no" class="form-control" value="<?= $edit_student['roll_no'] ?>"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Gender</label>
                            <select name="gender" class="form-select">
                                <?php foreach(['Male','Female','Other'] as $g): ?>
                                <option <?= $edit_student['gender']==$g?'selected':'' ?>><?= $g ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        <div class="col-md-6"><label class="form-label fw-600">DOB</label><input type="date" name="dob" class="form-control" value="<?= $edit_student['dob'] ?>"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Class & Section *</label>
                            <select name="class_id" class="form-select" required>
                                <?php $classes->data_seek(0); while($c=$classes->fetch_assoc()): ?>
                                <option value="<?= $c['id'] ?>" <?= $edit_student['class_id']==$c['id']?'selected':'' ?>><?= $c['class_name'].' - Section '.$c['section'] ?></option>
                                <?php endwhile; ?>
                            </select>
                        </div>
                        <div class="col-md-6"><label class="form-label fw-600">Father's Name</label><input type="text" name="father_name" class="form-control" value="<?= htmlspecialchars($edit_student['father_name']) ?>"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Mother's Name</label><input type="text" name="mother_name" class="form-control" value="<?= htmlspecialchars($edit_student['mother_name']) ?>"></div>
                        <div class="col-md-6"><label class="form-label fw-600">Parent Mobile</label><input type="text" name="mobile" class="form-control" value="<?= htmlspecialchars($edit_student['parent_mobile']) ?>"></div>
                    </div>
                </div>
                <div class="modal-footer">
                    <a href="students.php" class="btn btn-secondary">Cancel</a>
                    <button type="submit" class="btn btn-success"><i class="fas fa-save me-1"></i> Update Student</button>
                </div>
            </form>
        </div>
    </div>
</div>
<script>var editModal=new bootstrap.Modal(document.getElementById('editModal'));editModal.show();</script>
<?php endif; ?>

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