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

if ($_POST['action']??''=='add') {
    $tid=intval($_POST['term_id']); $cid=intval($_POST['class_id']); $sid=intval($_POST['subject_id']);
    $comp=$conn->real_escape_string(trim($_POST['component_name']));
    $mm=floatval($_POST['max_marks']); $pm=floatval($_POST['pass_marks']); $wt=floatval($_POST['weightage']);
    $conn->query("INSERT INTO result_exam_structure (term_id,class_id,subject_id,component_name,max_marks,pass_marks,weightage) VALUES ($tid,$cid,$sid,'$comp',$mm,$pm,$wt)");
    if($conn->affected_rows>0) $msg="Structure added!"; else $err=$conn->error;
}
if ($_POST['action']??''=='bulk_setup') {
    // Auto-create structure for all mapped subjects in a class-term
    $tid=intval($_POST['term_id']); $cid=intval($_POST['class_id']);
    $comp=$conn->real_escape_string($_POST['component_name']??'Theory');
    $mm=floatval($_POST['max_marks']??100); $pm=floatval($_POST['pass_marks']??33);
    $subs=$conn->query("SELECT subject_id FROM result_class_subject WHERE class_id=$cid");
    $added=0;
    while($s=$subs->fetch_assoc()) {
        $conn->query("INSERT IGNORE INTO result_exam_structure (term_id,class_id,subject_id,component_name,max_marks,pass_marks,weightage) VALUES ($tid,$cid,{$s['subject_id']},'$comp',$mm,$pm,100)");
        if($conn->affected_rows>0) $added++;
    }
    $msg="$added exam structures created!";
}
if (isset($_GET['del'])) { $conn->query("DELETE FROM result_exam_structure WHERE id=".intval($_GET['del'])); $msg="Deleted."; }

$filter_class=intval($_GET['class_id']??0); $filter_term=intval($_GET['term_id']??0);
$where=[]; if($filter_class) $where[]="es.class_id=$filter_class"; if($filter_term) $where[]="es.term_id=$filter_term";
$wstr=count($where)?"WHERE ".implode(' AND ',$where):"";
$structures=$conn->query("SELECT es.*,c.class_name,c.section,s.subject_name,s.grading_type,t.term_name FROM result_exam_structure es JOIN result_classes c ON es.class_id=c.id JOIN result_subjects s ON es.subject_id=s.id JOIN result_terms t ON es.term_id=t.id $wstr ORDER BY c.numeric_level,t.display_order,s.subject_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 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");
$subjects=$conn->query("SELECT * FROM result_subjects WHERE is_active=1 ORDER BY subject_name");
$components=['Theory','Practical','Oral','Notebook','Subject Enrichment','Assignment','FA1','FA2','SA1','SA2','Unit Test','Half Yearly','Annual'];
?>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Exam Structure | 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-sitemap me-2" style="color:var(--primary)"></i>Exam Structure</h4>
<div class="d-flex gap-2">
<button class="btn btn-success btn-sm" data-bs-toggle="modal" data-bs-target="#bulkModal"><i class="fas fa-magic me-1"></i>Auto-Setup</button>
<button class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#addModal"><i class="fas fa-plus me-1"></i>Add Component</button>
</div></div>
<?php if($msg): ?><div class="alert alert-success"><?=$msg?></div><?php endif; ?>
<?php if($err): ?><div class="alert alert-warning"><?=$err?></div><?php endif; ?>
<div class="card-box mb-3 p-3">
<form method="GET" class="d-flex flex-wrap gap-2">
<select name="class_id" class="form-select form-select-sm" style="width:auto">
<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']?></option>
<?php endwhile; ?>
</select>
<select name="term_id" class="form-select form-select-sm" style="width:auto">
<option value="">All Terms</option>
<?php $terms->data_seek(0); while($t=$terms->fetch_assoc()): ?>
<option value="<?=$t['id']?>" <?=$filter_term==$t['id']?'selected':''?> ><?=htmlspecialchars($t['term_name'])?></option>
<?php endwhile; ?>
</select>
<button type="submit" class="btn btn-primary btn-sm">Filter</button>
<a href="exam_structure.php" class="btn btn-outline-secondary btn-sm">Clear</a>
</form></div>
<div class="card-box"><table class="table mb-0">
<thead><tr><th>#</th><th>Class</th><th>Term</th><th>Subject</th><th>Component</th><th>Max Marks</th><th>Pass Marks</th><th>Weightage</th><th>Actions</th></tr></thead>
<tbody><?php $i=0; while($e=$structures->fetch_assoc()): $i++; ?>
<tr><td><?=$i?></td>
<td><?=$e['class_name'].' '.$e['section']?></td>
<td><span class="badge bg-info" style="font-size:10px"><?=htmlspecialchars($e['term_name'])?></span></td>
<td class="fw-600"><?=htmlspecialchars($e['subject_name'])?></td>
<td><span class="badge bg-warning text-dark"><?=htmlspecialchars($e['component_name'])?></span></td>
<td><?=$e['max_marks']?></td><td><?=$e['pass_marks']?></td><td><?=$e['weightage']?>%</td>
<td><a href="?del=<?=$e['id']?>" class="btn btn-sm btn-outline-danger" style="font-size:11px" onclick="return confirm('Delete?')"><i class="fas fa-trash"></i></a></td>
</tr><?php endwhile; ?>
<?php if($i==0): ?><tr><td colspan="9" class="text-center py-4 text-muted">No exam structures. Use Auto-Setup to create.</td></tr><?php endif; ?>
</tbody></table></div></div>
<!-- Add Modal -->
<div class="modal fade" id="addModal" tabindex="-1"><div class="modal-dialog"><div class="modal-content">
<div class="modal-header" style="background:linear-gradient(135deg,var(--primary),#1a6ba0);color:#fff"><h5 class="modal-title">Add Exam Component</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="mb-3"><label class="form-label fw-600">Term *</label><select name="term_id" class="form-select" required>
<?php $terms->data_seek(0); while($t=$terms->fetch_assoc()): ?><option value="<?=$t['id']?>"><?=htmlspecialchars($t['term_name'])?></option><?php endwhile; ?></select></div>
<div class="mb-3"><label class="form-label fw-600">Class *</label><select name="class_id" class="form-select" required>
<?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="mb-3"><label class="form-label fw-600">Subject *</label><select name="subject_id" class="form-select" required>
<?php $subjects->data_seek(0); while($s=$subjects->fetch_assoc()): ?><option value="<?=$s['id']?>"><?=htmlspecialchars($s['subject_name'])?></option><?php endwhile; ?></select></div>
<div class="mb-3"><label class="form-label fw-600">Component *</label>
<select name="component_name" class="form-select"><?php foreach($components as $c): ?><option><?=$c?></option><?php endforeach; ?></select></div>
<div class="row g-3"><div class="col-4"><label class="form-label fw-600">Max Marks</label><input type="number" name="max_marks" class="form-control" value="100" step="0.5"></div>
<div class="col-4"><label class="form-label fw-600">Pass Marks</label><input type="number" name="pass_marks" class="form-control" value="33" step="0.5"></div>
<div class="col-4"><label class="form-label fw-600">Weightage %</label><input type="number" name="weightage" class="form-control" value="100" step="0.5"></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">Add</button></div></form></div></div></div>
<!-- Bulk Auto-Setup Modal -->
<div class="modal fade" id="bulkModal" tabindex="-1"><div class="modal-dialog"><div class="modal-content">
<div class="modal-header" style="background:linear-gradient(135deg,#059669,#10b981);color:#fff"><h5 class="modal-title">⚡ Auto-Setup Exam Structure</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="bulk_setup"><div class="modal-body">
<div class="alert alert-info"><i class="fas fa-info-circle me-1"></i>This will auto-create exam structure for ALL subjects mapped to the selected class.</div>
<div class="mb-3"><label class="form-label fw-600">Class *</label><select name="class_id" class="form-select" required>
<?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="mb-3"><label class="form-label fw-600">Term *</label><select name="term_id" class="form-select" required>
<?php $terms->data_seek(0); while($t=$terms->fetch_assoc()): ?><option value="<?=$t['id']?>"><?=htmlspecialchars($t['term_name'])?></option><?php endwhile; ?></select></div>
<div class="mb-3"><label class="form-label fw-600">Component Name</label><select name="component_name" class="form-select">
<?php foreach($components as $c): ?><option><?=$c?></option><?php endforeach; ?></select></div>
<div class="row g-3"><div class="col-6"><label class="form-label fw-600">Max Marks</label><input type="number" name="max_marks" class="form-control" value="100"></div>
<div class="col-6"><label class="form-label fw-600">Pass Marks</label><input type="number" name="pass_marks" class="form-control" value="33"></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-success">⚡ Auto-Setup</button></div></form></div></div></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script></body></html>
