<?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'))) {
  http_response_code(403);
  die("Acceso no permitido");
}

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

// Vincular alumno->estudiante
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'link_alumno') {
  csrf_check();

  $usuarioId = (int)($_POST['usuario_id'] ?? 0);
  $estudianteId = (int)($_POST['estudiante_id'] ?? 0);

  if ($usuarioId && $estudianteId) {
    // usuario_estudiante es 1 a 1 (PK usuario_id)
    $pdo->prepare("REPLACE INTO usuario_estudiante (usuario_id, estudiante_id) VALUES (?, ?)")
        ->execute([$usuarioId, $estudianteId]);
    $msg = "Vínculo ALUMNO creado/actualizado.";
  } else {
    $msg = "Faltan datos para vincular ALUMNO.";
  }
}

// Vincular tutor->estudiante
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'link_tutor') {
  csrf_check();

  $usuarioId = (int)($_POST['usuario_id'] ?? 0);
  $estudianteId = (int)($_POST['estudiante_id'] ?? 0);
  $parentesco = trim($_POST['parentesco'] ?? '');

  if ($usuarioId && $estudianteId) {
    $pdo->prepare(
      "INSERT INTO tutor_estudiante (usuario_id, estudiante_id, parentesco, activo)
       VALUES (?, ?, ?, 1)
       ON DUPLICATE KEY UPDATE parentesco=VALUES(parentesco), activo=1"
    )->execute([$usuarioId, $estudianteId, $parentesco !== '' ? $parentesco : null]);

    $msg = "Vínculo TUTOR creado/actualizado.";
  } else {
    $msg = "Faltan datos para vincular TUTOR.";
  }
}

// Listados rápidos (últimos)
$alumnosUsuarios = $pdo->query(
  "SELECT id, username, ci, nombres, apellidos
   FROM usuarios
   WHERE tipo='ALUMNO'
   ORDER BY id DESC
   LIMIT 50"
)->fetchAll();

$tutoresUsuarios = $pdo->query(
  "SELECT id, username, ci, nombres, apellidos
   FROM usuarios
   WHERE tipo='TUTOR'
   ORDER BY id DESC
   LIMIT 50"
)->fetchAll();

$estudiantes = $pdo->query(
  "SELECT id, ci, nombres, apellidos
   FROM estudiantes
   ORDER BY id DESC
   LIMIT 80"
)->fetchAll();

$title = "Admin - Vínculos";
include __DIR__ . '/../../app/views/header.php';
?>

<h1 class="h5 mb-3">Vínculos Alumno / Tutor</h1>

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

<div class="row g-3">
  <div class="col-12 col-lg-6">
    <div class="card shadow-sm">
      <div class="card-body">
        <h2 class="h6">Vincular ALUMNO → ESTUDIANTE</h2>

        <form method="post" class="row g-2">
          <input type="hidden" name="csrf" value="<?= htmlspecialchars(csrf_token()) ?>">
          <input type="hidden" name="action" value="link_alumno">

          <div class="col-12">
            <label class="form-label">Usuario (ALUMNO)</label>
            <select class="form-select" name="usuario_id" required>
              <option value="">Seleccionar...</option>
              <?php foreach ($alumnosUsuarios as $u): ?>
                <option value="<?= (int)$u['id'] ?>">
                  <?= htmlspecialchars($u['username'].' - '.($u['nombres'].' '.$u['apellidos']).' (CI: '.($u['ci'] ?? '-').')') ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>

          <div class="col-12">
            <label class="form-label">Estudiante</label>
            <select class="form-select" name="estudiante_id" required>
              <option value="">Seleccionar...</option>
              <?php foreach ($estudiantes as $e): ?>
                <option value="<?= (int)$e['id'] ?>">
                  <?= htmlspecialchars(($e['nombres'].' '.$e['apellidos']).' (CI: '.($e['ci'] ?? '-').')') ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>

          <div class="col-12 d-flex gap-2">
            <button class="btn btn-primary">Vincular</button>
            <a class="btn btn-outline-secondary" href="/Comercio/public/admin/usuarios.php">Volver</a>
          </div>
        </form>

      </div>
    </div>
  </div>

  <div class="col-12 col-lg-6">
    <div class="card shadow-sm">
      <div class="card-body">
        <h2 class="h6">Vincular TUTOR → ESTUDIANTE</h2>

        <form method="post" class="row g-2">
          <input type="hidden" name="csrf" value="<?= htmlspecialchars(csrf_token()) ?>">
          <input type="hidden" name="action" value="link_tutor">

          <div class="col-12">
            <label class="form-label">Usuario (TUTOR)</label>
            <select class="form-select" name="usuario_id" required>
              <option value="">Seleccionar...</option>
              <?php foreach ($tutoresUsuarios as $u): ?>
                <option value="<?= (int)$u['id'] ?>">
                  <?= htmlspecialchars($u['username'].' - '.($u['nombres'].' '.$u['apellidos']).' (CI: '.($u['ci'] ?? '-').')') ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>

          <div class="col-12">
            <label class="form-label">Estudiante</label>
            <select class="form-select" name="estudiante_id" required>
              <option value="">Seleccionar...</option>
              <?php foreach ($estudiantes as $e): ?>
                <option value="<?= (int)$e['id'] ?>">
                  <?= htmlspecialchars(($e['nombres'].' '.$e['apellidos']).' (CI: '.($e['ci'] ?? '-').')') ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>

          <div class="col-12">
            <label class="form-label">Parentesco (opcional)</label>
            <input class="form-control" name="parentesco" placeholder="Padre / Madre / Tutor">
          </div>

          <div class="col-12">
            <button class="btn btn-primary">Vincular</button>
          </div>
        </form>

      </div>
    </div>
  </div>
</div>

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