<?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='';

// Save remark
if ($_POST['action']??''=='save') {
    $sid=intval($_POST['student_id']); $tid=intval($_POST['term_id']);
    $ctr=$conn->real_escape_string(trim($_POST['ct_remarks']));
    $pr=$conn->real_escape_string(trim($_POST['principal_remarks']));
    $rs=$conn->real_escape_string($_POST['result_status']);
    $pub=isset($_POST['is_published'])?1:0;
    $conn->query("INSERT INTO result_remarks (student_id,term_id,class_teacher_remarks,principal_remarks,result_status,is_published) VALUES ($sid,$tid,'$ctr','$pr','$rs',$pub) ON DUPLICATE KEY UPDATE class_teacher_remarks='$ctr',principal_remarks='$pr',result_status='$rs',is_published=$pub");
    $msg="Remarks saved!";
}
// Bulk publish
if ($_POST['action']??''=='bulk_publish') {
    $cid=intval($_POST['class_id']); $tid=intval($_POST['term_id']);
    $sids=$conn->query("SELECT id FROM result_students WHERE class_id=$cid AND is_active=1");
    while($s=$sids->fetch_assoc()){
        $sid=$s['id'];
        $conn->query("INSERT INTO result_remarks (student_id,term_id,is_published) VALUES ($sid,$tid,1) ON DUPLICATE KEY UPDATE is_published=1");
    }
    $msg="All results published!";
}

$sel_class=intval($_GET['class_id']??0); $sel_term=intval($_GET['term_id']??0);
$classes=$conn->query("SELECT rc.*,rs.session_name FROM result_classes rc JOIN result_sessions rs ON rc.session_id=rs.id ORDER BY rs.is_active DESC,rc.numeric_level,rc.section");
$terms=$conn->query("SELECT rt.*,rs.session_name FROM result_terms rt JOIN result_sessions rs ON rt.session_id=rs.id ORDER BY rs.is_active DESC,rt.display_order");
$students=[]; $remarks_map=[];
if($sel_class&&$sel_term){
    $sr=$conn->query("SELECT id,first_name,last_name,roll_no FROM result_students WHERE class_id=$sel_class AND is_active=1 ORDER BY roll_no,first_name");
    while($s=$sr->fetch_assoc()) $students[]=$s;
    if(!empty($students)){
        $sids=implode(',',array_column($students,'id'));
        $rr=$conn->query("SELECT * FROM result_remarks WHERE student_id IN($sids) AND term_id=$sel_term");
        while($r=$rr->fetch_assoc()) $remarks_map[$r['student_id']]=$r;
    }
}
?>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Remarks & Publish | Result</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@400;500;600;700&display=swap" rel="stylesheet">
<?php include __DIR__.'/_sidebar_style.php'; ?></head><body>
<?php include __DIR__.'/_sidebar.php'; ?>
<div class="main">
<div class="topbar"><h4><i class="fas fa-comment-dots me-2" style="color:var(--primary)"></i>Remarks & Publish Results</h4></div>
<?php if($msg): ?><div class="alert alert-success mb-3"><?=$msg?></div><?php endif; ?>
<div class="card-box mb-3 p-3">
<form method="GET" class="row g-2 align-items-end">
<div class="col-md-4"><select name="class_id" class="form-select form-select-sm">
<option value="">-- Class --</option>
<?php while($c=$classes->fetch_assoc()): ?><option value="<?=$c['id']?>" <?=$sel_class==$c['id']?'selected':''?> ><?=$c['class_name'].' '.$c['section']?></option><?php endwhile; ?></select></div>
<div class="col-md-4"><select name="term_id" class="form-select form-select-sm">
<option value="">-- Term --</option>
<?php while($t=$terms->fetch_assoc()): ?><option value="<?=$t['id']?>" <?=$sel_term==$t['id']?'selected':''?> ><?=htmlspecialchars($t['term_name'])?></option><?php endwhile; ?></select></div>
<div class="col-md-4"><button type="submit" class="btn btn-primary btn-sm w-100">Load</button></div>
</form></div>
<?php if(!empty($students)): ?>
<div class="card-box mb-3 p-3 d-flex justify-content-between align-items-center">
<div><strong><?=count($students)?></strong> students | <strong><?=count(array_filter($remarks_map,fn($r)=>$r['is_published']))?></strong> published</div>
<form method="POST">
<input type="hidden" name="action" value="bulk_publish">
<input type="hidden" name="class_id" value="<?=$sel_class?>">
<input type="hidden" name="term_id" value="<?=$sel_term?>">
<button type="submit" class="btn btn-success btn-sm" onclick="return confirm('Publish all results for this class?')">
<i class="fas fa-globe me-1"></i>Publish All Results</button>
</form>
</div>
<?php foreach($students as $s):
$r=$remarks_map[$s['id']]??['class_teacher_remarks'=>'','principal_remarks'=>'','result_status'=>'--','is_published'=>0]; ?>
<div class="card-box mb-2">
<div class="cb-header">
<h6><?=htmlspecialchars($s['first_name'].' '.$s['last_name'])?> &nbsp;|&nbsp; Roll: <?=$s['roll_no']?></h6>
<?=$r['is_published']?'<span class="badge bg-success">Published</span>':'<span class="badge bg-secondary">Draft</span>'?>
</div>
<form method="POST" class="p-3">
<input type="hidden" name="action" value="save">
<input type="hidden" name="student_id" value="<?=$s['id']?>">
<input type="hidden" name="term_id" value="<?=$sel_term?>">
<div class="row g-3">
<div class="col-md-5"><label class="form-label fw-600" style="font-size:12px">Class Teacher Remarks</label>
<textarea name="ct_remarks" class="form-control form-control-sm" rows="2"><?=htmlspecialchars($r['class_teacher_remarks'])?></textarea></div>
<div class="col-md-4"><label class="form-label fw-600" style="font-size:12px">Principal's Remarks</label>
<textarea name="principal_remarks" class="form-control form-control-sm" rows="2"><?=htmlspecialchars($r['principal_remarks'])?></textarea></div>
<div class="col-md-2"><label class="form-label fw-600" style="font-size:12px">Result Status</label>
<select name="result_status" class="form-select form-select-sm">
<?php foreach(['--','Pass','Fail','Promoted','Detained'] as $st): ?><option <?=$r['result_status']==$st?'selected':''?> ><?=$st?></option><?php endforeach; ?></select>
<div class="form-check mt-2"><input type="checkbox" class="form-check-input" name="is_published" id="pub<?=$s['id']?>" <?=$r['is_published']?'checked':''?> ><label class="form-check-label" for="pub<?=$s['id']?>" style="font-size:11px">Publish</label></div></div>
<div class="col-md-1 d-flex align-items-end gap-1">
<button type="submit" class="btn btn-primary btn-sm" title="Save"><i class="fas fa-save"></i></button>
<a href="report_card.php?student_id=<?=$s['id']?>&term_id=<?=$sel_term?>" target="_blank" class="btn btn-outline-info btn-sm" title="View Report Card"><i class="fas fa-file"></i></a>
</div></div></form></div>
<?php endforeach; ?>
<?php else: ?>
<div class="text-center py-5"><div style="font-size:4rem">📝</div><h5 class="text-muted">Select class & term to manage remarks</h5></div>
<?php endif; ?>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script></body></html>
