<?php
// modules/public/verificar_acta.php  — acceso público, sin login
require_once __DIR__ . '/config/app.php';
require_once __DIR__ . '/includes/functions.php';

$db    = getDB();
$idTit = (int)($_GET['id']    ?? 0);
$token = $_GET['token'] ?? '';
$valid = $token === md5('acta-' . $idTit . '-sigvp');

$d = null;
if ($idTit && $valid) {
    $st = $db->prepare("
        SELECT t.id_titulacion, t.tema, t.modalidad, t.nota_global, t.nota_trabajo,
               t.nota_director, t.nota_lector, t.nota_tribunal,
               t.updated_at,
               CONCAT(u.apellidos,' ',u.nombres)     AS estudiante,
               u.cedula,
               car.nombre                             AS carrera,
               per.nombre                             AS periodo,
               CONCAT(utut.apellidos,' ',utut.nombres) AS tutor_nombre,
               CONCAT(udir.apellidos,' ',udir.nombres) AS director_nombre,
               CONCAT(ulec.apellidos,' ',ulec.nombres) AS lector_nombre,
               CONCAT(utri.apellidos,' ',utri.nombres) AS tribunal_nombre
        FROM titulaciones t
        JOIN estudiantes est ON est.id_estudiante = t.id_estudiante
        JOIN usuarios u      ON u.id_usuario      = est.id_usuario
        JOIN carreras car    ON car.id_carrera     = est.id_carrera
        LEFT JOIN periodos_academicos per ON per.id_periodo = est.id_periodo_ingreso
        LEFT JOIN usuarios utut ON utut.id_usuario = t.id_tutor
        LEFT JOIN usuarios udir ON udir.id_usuario = t.id_director_trib
        LEFT JOIN usuarios ulec ON ulec.id_usuario = t.id_lector_trib
        LEFT JOIN usuarios utri ON utri.id_usuario = t.id_tribunal_trib
        WHERE t.id_titulacion = :id AND t.estado = 'aprobado'
    ");
    $st->execute([':id' => $idTit]);
    $d = $st->fetch();
}

$ng     = $d ? (float)$d['nota_global'] : null;
$ap     = $ng !== null && $ng >= 70;
$ng10   = $ng ? round($ng/10, 2) : null;
$notaT  = $d && $d['nota_trabajo'] !== null ? round((float)$d['nota_trabajo']*10, 2) : null;
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Verificación de Acta — SIGVP Tecnópolis</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" rel="stylesheet">
<style>
body{background:#f0f4f8;font-family:'Segoe UI',sans-serif;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;}
.card-verify{background:#fff;border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,.10);max-width:600px;width:100%;overflow:hidden;}
.card-header-v{background:linear-gradient(135deg,#1f3864,#1d4ed8);padding:24px 28px;text-align:center;color:#fff;}
.card-header-v img{height:52px;margin-bottom:10px;}
.badge-ok{background:#dcfce7;color:#15803d;border:1.5px solid #86efac;border-radius:8px;padding:8px 16px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px;}
.badge-err{background:#fee2e2;color:#dc2626;border:1.5px solid #fca5a5;border-radius:8px;padding:8px 16px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px;}
.data-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:13px;}
.data-row:last-child{border:none;}
.data-lbl{color:#6b7280;font-weight:600;}
.data-val{color:#111827;font-weight:500;text-align:right;}
.nota-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;}
.nota-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px;text-align:center;}
.nota-num{font-size:20px;font-weight:800;}
.nota-lbl{font-size:10px;color:#6b7280;margin-top:2px;}
.global-v{background:linear-gradient(135deg,<?php echo $ap?'#f0fdf4,#dcfce7':'#fef2f2,#fee2e2' ?>);border:2px solid <?php echo $ap?'#86efac':'#fca5a5' ?>;border-radius:10px;padding:16px;text-align:center;margin-top:12px;}
</style>
</head>
<body>

<div class="card-verify">
  <div class="card-header-v">
    <img src="<?= BASE_URL ?>/uploads/logo/tecnopolis-logo.png" alt="Tecnópolis"
         onerror="this.style.display='none'">
    <div style="font-size:11px;opacity:.8;letter-spacing:.5px;text-transform:uppercase;">
      Instituto Superior Tecnológico Tecnópolis
    </div>
    <div style="font-size:16px;font-weight:700;margin-top:4px;">
      Verificación de Acta de Titulación
    </div>
  </div>

  <div style="padding:24px 28px;">

    <?php if (!$valid || !$d): ?>
      <!-- Documento inválido -->
      <div class="text-center py-4">
        <i class="fa fa-circle-xmark fa-3x mb-3" style="color:#dc2626;"></i>
        <div class="badge-err mx-auto mb-3">
          <i class="fa fa-triangle-exclamation"></i> Documento no válido
        </div>
        <p style="color:#6b7280;font-size:13px;">
          Este enlace no corresponde a un acta registrada en el sistema o el token es incorrecto.<br>
          Contacta a la institución para verificar.
        </p>
      </div>

    <?php else: ?>
      <!-- Documento válido -->
      <div class="text-center mb-4">
        <div class="badge-ok mx-auto">
          <i class="fa fa-circle-check"></i> Documento auténtico y registrado
        </div>
        <div style="font-size:11px;color:#6b7280;margin-top:6px;">
          N° TIT-<?= str_pad($idTit, 4, '0', STR_PAD_LEFT) ?> &nbsp;·&nbsp;
          Verificado el <?= date('d/m/Y H:i') ?>
        </div>
      </div>

      <!-- Datos del graduando -->
      <div style="background:#f8fafc;border-radius:8px;padding:14px 16px;margin-bottom:16px;">
        <div style="font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#6b7280;margin-bottom:8px;">Datos del Graduando</div>
        <div class="data-row"><span class="data-lbl">Nombre:</span><span class="data-val"><strong><?= htmlspecialchars($d['estudiante']) ?></strong></span></div>
        <div class="data-row"><span class="data-lbl">Cédula:</span><span class="data-val"><?= htmlspecialchars($d['cedula']) ?></span></div>
        <div class="data-row"><span class="data-lbl">Carrera:</span><span class="data-val"><?= htmlspecialchars($d['carrera']) ?></span></div>
        <div class="data-row"><span class="data-lbl">Período:</span><span class="data-val"><?= htmlspecialchars($d['periodo'] ?? '—') ?></span></div>
        <div class="data-row"><span class="data-lbl">Modalidad:</span><span class="data-val">Trabajo de Investigación</span></div>
        <div class="data-row"><span class="data-lbl">Tema:</span><span class="data-val" style="max-width:300px;"><?= htmlspecialchars($d['tema'] ?? '—') ?></span></div>
      </div>

      <!-- Notas -->
      <div style="font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#6b7280;margin-bottom:8px;">Calificaciones del Tribunal</div>
      <div class="nota-grid">
        <div class="nota-box">
          <div class="nota-num" style="color:<?= $notaT&&$notaT>=70?'#15803d':'#dc2626' ?>;"><?= $notaT!==null?number_format($notaT,1):'—' ?></div>
          <div class="nota-lbl">Tutor Investigación</div>
          <div style="font-size:9px;color:#6b7280;"><?= htmlspecialchars($d['tutor_nombre']??'—') ?></div>
        </div>
        <div class="nota-box">
          <div class="nota-num" style="color:<?= $d['nota_director']>=70?'#15803d':'#dc2626' ?>;"><?= $d['nota_director']!==null?number_format($d['nota_director'],1):'—' ?></div>
          <div class="nota-lbl">Director</div>
          <div style="font-size:9px;color:#6b7280;"><?= htmlspecialchars($d['director_nombre']??'—') ?></div>
        </div>
        <div class="nota-box">
          <div class="nota-num" style="color:<?= $d['nota_lector']>=70?'#15803d':'#dc2626' ?>;"><?= $d['nota_lector']!==null?number_format($d['nota_lector'],1):'—' ?></div>
          <div class="nota-lbl">Lector</div>
          <div style="font-size:9px;color:#6b7280;"><?= htmlspecialchars($d['lector_nombre']??'—') ?></div>
        </div>
        <div class="nota-box">
          <div class="nota-num" style="color:<?= $d['nota_tribunal']>=70?'#15803d':'#dc2626' ?>;"><?= $d['nota_tribunal']!==null?number_format($d['nota_tribunal'],1):'—' ?></div>
          <div class="nota-lbl">Tribunal</div>
          <div style="font-size:9px;color:#6b7280;"><?= htmlspecialchars($d['tribunal_nombre']??'—') ?></div>
        </div>
      </div>

      <!-- Nota global -->
      <div class="global-v">
        <div style="font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:<?= $ap?'#15803d':'#dc2626' ?>;margin-bottom:4px;">NOTA GLOBAL</div>
        <div style="font-size:32px;font-weight:900;color:<?= $ap?'#15803d':'#dc2626' ?>;line-height:1;">
          <?= $ng!==null?number_format($ng,2):'—' ?><span style="font-size:14px;"> / 100</span>
        </div>
        <div style="font-size:12px;color:#6b7280;margin-top:4px;">Equivalente CES: <strong><?= $ng10?number_format($ng10,2).'/ 10':'—' ?></strong></div>
        <div style="font-size:14px;font-weight:800;margin-top:6px;color:<?= $ap?'#15803d':'#dc2626' ?>;">
          <?= $ap?'✅ APROBADO':'❌ REPROBADO' ?>
        </div>
      </div>

      <div style="margin-top:16px;font-size:11px;color:#9ca3af;text-align:center;line-height:1.6;">
        Este documento fue emitido y registrado por el sistema SIGVP del<br>
        <strong>Instituto Superior Tecnológico Tecnópolis</strong><br>
        Fecha de registro: <?= date('d/m/Y', strtotime($d['updated_at'])) ?>
      </div>
    <?php endif; ?>

  </div>
</div>

</body>
</html>