<?php
declare(strict_types=1);

error_reporting(E_ALL);
ini_set('display_errors','1');

require_once __DIR__ . '/../../app/auth.php';
require_once __DIR__ . '/../../app/db.php';
require_once __DIR__ . '/../../app/helpers.php';

start_session();
require_login();

if (!(has_role('ADMIN') || has_role('SECRETARIA') || has_role('DIRECTOR'))) {
  http_response_code(403); die("Acceso no permitido");
}

$pdo = db();
$msg = null;

$relojes = $pdo->query("SELECT id, nombre FROM relojes_biometricos WHERE activo=1 ORDER BY nombre")->fetchAll();

if ($_SERVER['REQUEST_METHOD']==='POST') {
  csrf_check();
  $relojId = (int)($_POST['reloj_id'] ?? 0);

  if ($relojId <= 0) $msg = "Seleccioná un reloj.";
  elseif (empty($_FILES['archivo']['tmp_name'])) $msg = "Subí un CSV.";
  else {
    $tmp = $_FILES['archivo']['tmp_name'];
    $fh = fopen($tmp, 'r');
    if (!$fh) $msg = "No se pudo leer el archivo.";
    else {
      $ins = $pdo->prepare(
        "INSERT IGNORE INTO marcaciones (reloj_id, device_user_id, fecha_hora)
         VALUES (?, ?, ?)"
      );

      $count = 0; $bad = 0;
      while (($row = fgetcsv($fh)) !== false) {
        if (count($row) < 2) { $bad++; continue; }
        if (strtolower(trim($row[0])) === 'device_user_id') continue; // header

        $device = (int)trim($row[0]);
        $fechaHora = trim($row[1]);

        if ($device<=0 || $fechaHora==='') { $bad++; continue; }

        try {
          $ins->execute([$relojId, $device, $fechaHora]);
          $count += $ins->rowCount();
        } catch(Throwable $e) {
          $bad++;
        }
      }
      fclose($fh);
      $msg = "✅ Importadas: $count | Filas inválidas: $bad";
    }
  }
}

$title="Importar marcaciones";
include __DIR__ . '/../../app/views/header.php';
?>

<h1 class="h5 mb-3">Importar marcaciones (CSV)</h1>

<?php if ($msg): ?><div class="alert alert-info"><?= htmlspecialchars($msg) ?></div><?php endif; ?>

<div class="card shadow-sm">
  <div class="card-body">
    <form method="post" enctype="multipart/form-data" class="row g-2">
      <input type="hidden" name="csrf" value="<?= htmlspecialchars(csrf_token()) ?>">

      <div class="col-12 col-md-6">
        <label class="form-label">Reloj</label>
        <select class="form-select" name="reloj_id" required>
          <option value="">Seleccionar...</option>
          <?php foreach($relojes as $r): ?>
            <option value="<?= (int)$r['id'] ?>"><?= htmlspecialchars($r['nombre']) ?></option>
          <?php endforeach; ?>
        </select>
      </div>

      <div class="col-12 col-md-6">
        <label class="form-label">Archivo CSV</label>
        <input class="form-control" type="file" name="archivo" accept=".csv" required>
      </div>

      <div class="col-12">
        <button class="btn btn-primary">Importar</button>
      </div>
      <div class="text-muted small">
        Formato: <b>device_user_id,fecha_hora</b> (ej: 12,2026-02-12 06:58:12)
      </div>
    </form>
  </div>
</div>

<?php include __DIR__ . '/../../app/views/footer.php'; ?>
