<?php
// Seed sample Exam Types, Exams and Exam Subjects (idempotent)
header('Content-Type: application/json');
require_once '../../config/config.php';

function findId($pdo, $sql, $params){ $stmt=$pdo->prepare($sql); $stmt->execute($params); $id=$stmt->fetchColumn(); return $id? (int)$id : 0; }
function ensureExamType($pdo,$name,$desc=null){ $id=findId($pdo,'SELECT exam_type_id FROM exam_types WHERE type_name=?',[$name]); if($id) return $id; $s=$pdo->prepare('INSERT INTO exam_types (type_name,description) VALUES (?,?)'); $s->execute([$name,$desc]); return (int)$pdo->lastInsertId(); }
function ensureExam($pdo,$name,$typeId,$ay,$sem,$status='Draft'){ $id=findId($pdo,'SELECT exam_id FROM exams WHERE exam_name=?',[$name]); if($id) return $id; $s=$pdo->prepare('INSERT INTO exams (exam_name,exam_type_id,academic_year,semester,status,is_arrear_allowed) VALUES (?,?,?,?,?,1)'); $s->execute([$name,$typeId,$ay,$sem,$status]); return (int)$pdo->lastInsertId(); }
function ensureExamSubject($pdo,$examId,$subjectId,$max,$pass){ $id=findId($pdo,'SELECT exam_subject_id FROM exam_subjects WHERE exam_id=? AND subject_id=?',[$examId,$subjectId]); if($id) return $id; $s=$pdo->prepare('INSERT INTO exam_subjects (exam_id,subject_id,max_marks,pass_marks) VALUES (?,?,?,?)'); $s->execute([$examId,$subjectId,$max,$pass]); return (int)$pdo->lastInsertId(); }

try{
  $pdo->beginTransaction();
  $semType = ensureExamType($pdo,'SEM','Semester End Exam');
  $ci1Type = ensureExamType($pdo,'CI1','Cycle Test 1');

  $exam1 = ensureExam($pdo,'BE CSE - Apr 2024 - Sem 6',$semType,'2023-2024',6,'Announced');
  $exam2 = ensureExam($pdo,'BE ME - Apr 2024 - Sem 6',$semType,'2023-2024',6,'Announced');

  // Map some subjects arbitrarily by course code
  $cseSub1 = findId($pdo,'SELECT subject_id FROM subjects WHERE subject_code=?',['CS201']);
  $cseSub2 = findId($pdo,'SELECT subject_id FROM subjects WHERE subject_code=?',['CS202']);
  $meSub1  = findId($pdo,'SELECT subject_id FROM subjects WHERE subject_code=?',['ME201']);
  $meSub2  = findId($pdo,'SELECT subject_id FROM subjects WHERE subject_code=?',['ME202']);
  if($cseSub1) ensureExamSubject($pdo,$exam1,$cseSub1,100,40);
  if($cseSub2) ensureExamSubject($pdo,$exam1,$cseSub2,100,40);
  if($meSub1) ensureExamSubject($pdo,$exam2,$meSub1,100,40);
  if($meSub2) ensureExamSubject($pdo,$exam2,$meSub2,100,40);

  $pdo->commit();
  echo json_encode(['status'=>'success','message'=>'Exam seeds completed']);
}catch(Throwable $e){ if($pdo->inTransaction()) $pdo->rollBack(); http_response_code(500); echo json_encode(['status'=>'error','message'=>$e->getMessage()]); }
?>


