<?php
$pageTitle = 'Import Data';
require_once __DIR__ . '/includes/header.php';
require_once __DIR__ . '/includes/import_helpers.php';

$db = getDB();
$error = '';
$imported = 0;

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {
    $file = $_FILES['file'];
    if ($file['error'] !== UPLOAD_ERR_OK) {
        $error = 'Gagal mengunggah file.';
    } else {
        $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
        if (!in_array($ext, ['csv', 'txt', 'xlsx'], true)) {
            $error = 'Format didukung: CSV atau Excel (.xlsx).';
        } else {
            $rows = ($ext === 'xlsx')
                ? parseXlsxRows($file['tmp_name'], 6)
                : parseCsvRows($file['tmp_name'], 6);

            if (!empty($rows)) {
                foreach ($rows as $row) {
                    if (count($row) < 6) {
                        continue;
                    }
                    [$nama, $pekerjaan, $penghasilan, $saudara, $kps, $kip] = $row;
                    if (trim((string) $nama) === '') {
                        continue;
                    }

                    $pekerjaan = mapPekerjaanOrtu((string) $pekerjaan);
                    $penghasilan = mapPenghasilanOrtu((string) $penghasilan);
                    if ($pekerjaan === '' || $penghasilan === '') {
                        continue;
                    }

                    $stmt = $db->prepare(
                        'INSERT INTO siswa (nama, pekerjaan_ortu, penghasilan_ortu, jumlah_saudara, kepemilikan_kps, kepemilikan_kip)
                         VALUES (?, ?, ?, ?, ?, ?)'
                    );
                    $stmt->execute([
                        trim((string) $nama),
                        $pekerjaan,
                        $penghasilan,
                        (int) $saudara,
                        mapYaTidak((string) $kps),
                        mapYaTidak((string) $kip),
                    ]);
                    $imported++;
                }
                if ($imported > 0) {
                    flash('success', "$imported data siswa berhasil diimport.");
                    header('Location: siswa.php');
                    exit;
                }
                $error = 'Tidak ada data valid yang bisa diimport. Cek nilai pekerjaan/penghasilan di file.';
            } else {
                $error = 'File tidak dapat dibaca.';
            }
        }
    }
}
?>

<div class="page-header">
  <h1>Import Data</h1>
  <p class="breadcrumb"><a href="siswa.php">Data Siswa</a> / Import</p>
</div>
<div class="page-body">
  <?php if ($error): ?><div class="alert alert-danger"><?= e($error) ?></div><?php endif; ?>

  <div class="card">
    <div class="card-body">
      <p style="margin-bottom:1rem">Unggah file CSV atau Excel (.xlsx) dengan kolom berikut (baris pertama = header):</p>
      <code>nama, pekerjaan_ortu, penghasilan_ortu, jumlah_saudara, kepemilikan_kps, kepemilikan_kip</code>
      <p style="margin-top:0.75rem;font-size:0.85rem;color:var(--text-muted)">
        Pekerjaan ortu harus salah satu dari daftar dropdown (contoh: Petani, Buruh, PNS/TNI/Polri, dll).
      </p>
      <p style="margin-top:0.75rem;font-size:0.85rem;color:var(--text-muted)">
        <?= penghasilanNominalKeteranganHtml() ?>
      </p>
      <form method="post" enctype="multipart/form-data" style="margin-top:1.5rem" novalidate>
        <div class="form-group">
          <label>File Data</label>
          <input type="file" name="file" class="form-control" accept=".csv,.txt,.xlsx" required>
        </div>
        <button type="submit" class="btn btn-success">Import Data</button>
        <a href="siswa.php" class="btn btn-outline">Kembali</a>
      </form>
    </div>
  </div>
</div>

<?php require_once __DIR__ . '/includes/footer.php'; ?>
