<?php
// Student Import via CSV
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=''; $imported=0;

if ($_POST['action']??''=='import' && isset($_FILES['csv_file'])) {
    $classes_map=[];
    $cr=$conn->query("SELECT id,class_name,section FROM result_classes");
    while($c=$cr->fetch_assoc()) $classes_map[strtolower($c['class_name'].' '.$c['section'])]=$c['id'];

    $file=fopen($_FILES['csv_file']['tmp_name'],'r');
    $header=fgetcsv($file); // skip header
    while(($row=fgetcsv($file))!==false){
        if(count($row)<5) continue;
        [$adm,$fn,$ln,$dob,$gen,$fat,$mot,$mob,$cls,$sec,$roll]=$row+array_fill(0,11,'');
        $cls_key=strtolower(trim($cls).' '.trim($sec));
        $cid=$classes_map[$cls_key]??0;
        if(!$cid){echo "<div class='alert alert-warning'>Class '$cls $sec' not found, skipping $fn</div>"; continue;}
        $adm=$conn->real_escape_string(trim($adm));
        $fn=$conn->real_escape_string(trim($fn)); $ln=$conn->real_escape_string(trim($ln));
        $dob=$conn->real_escape_string(trim($dob)); $gen=$conn->real_escape_string(trim($gen)?:'Male');
        $fat=$conn->real_escape_string(trim($fat)); $mot=$conn->real_escape_string(trim($mot));
        $mob=$conn->real_escape_string(trim($mob)); $roll=intval(trim($roll));
        $conn->query("INSERT IGNORE INTO result_students (admission_no,first_name,last_name,dob,gender,father_name,mother_name,parent_mobile,class_id,roll_no) VALUES ('$adm','$fn','$ln','$dob','$gen','$fat','$mot','$mob',$cid,$roll)");
        if($conn->affected_rows>0) $imported++;
    }
    fclose($file);
    $msg="✅ Imported $imported students successfully!";
}

// CSV Download template
if(isset($_GET['download_template'])){
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="student_import_template.csv"');
    echo "admission_no,first_name,last_name,dob(YYYY-MM-DD),gender,father_name,mother_name,mobile,class_name,section,roll_no\n";
    echo "BSPS-001,Rahul,Sharma,2015-05-20,Male,Rajesh Sharma,Sunita Sharma,9876543210,Class 5,A,1\n";
    echo "BSPS-002,Priya,Singh,2016-03-14,Female,Mohan Singh,Geeta Singh,9876543211,Class 4,A,2\n";
    exit;
}
$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");
?>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Bulk Import | 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-file-excel me-2" style="color:var(--primary)"></i>Bulk Student Import (CSV)</h4></div>
<?php if($msg): ?><div class="alert alert-success"><?=$msg?></div><?php endif; ?>
<?php if($err): ?><div class="alert alert-danger"><?=$err?></div><?php endif; ?>
<div class="row g-3">
<div class="col-md-7">
<div class="card-box p-4">
<h6 style="font-weight:700;margin-bottom:16px">📂 Upload CSV File</h6>
<form method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="import">
<div class="mb-3"><label class="form-label fw-600">Select CSV File *</label>
<input type="file" name="csv_file" class="form-control" accept=".csv,.txt" required></div>
<div class="alert alert-info" style="font-size:12px">
<strong>CSV Column Order:</strong> admission_no, first_name, last_name, dob, gender, father_name, mother_name, mobile, class_name, section, roll_no<br>
<strong>Class names must match exactly</strong> as created in Classes setup (e.g., "Class 5", "Nursery", "LKG")
</div>
<button type="submit" class="btn btn-primary"><i class="fas fa-upload me-1"></i>Import Students</button>
</form></div></div>
<div class="col-md-5">
<div class="card-box p-4">
<h6 style="font-weight:700;margin-bottom:16px">📋 Available Classes</h6>
<div style="max-height:250px;overflow-y:auto">
<?php while($c=$classes->fetch_assoc()): ?>
<div style="padding:6px 0;border-bottom:1px solid #f1f5f9;font-size:13px">
<strong><?=htmlspecialchars($c['class_name'])?></strong> — Section <?=$c['section']?>
<span class="text-muted" style="font-size:11px"> [<?=htmlspecialchars($c['session_name'])?>]</span>
</div>
<?php endwhile; ?>
</div>
<div class="mt-3">
<a href="?download_template=1" class="btn btn-success btn-sm w-100">
<i class="fas fa-download me-1"></i>Download CSV Template
</a>
</div></div>
<div class="card-box p-4 mt-3">
<h6 style="font-weight:700;margin-bottom:12px">📊 Import Tips</h6>
<ul style="font-size:12px;color:#64748b;padding-left:18px">
<li>DOB format: YYYY-MM-DD</li>
<li>Gender: Male, Female, Other</li>
<li>Class name must exactly match</li>
<li>Section: A, B, C etc</li>
<li>Duplicate admission_no rows are skipped</li>
</ul>
</div></div>
</div></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script></body></html>
