<?php
require_once __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'config'   . DIRECTORY_SEPARATOR . 'app.php';
require_once __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'auth.php';
require_once __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'functions.php';
require_once __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'flash.php';
requireRol(ROL_TUTOR);
$idInst = instId();

$user      = currentUser();
$db        = getDB();
$pageTitle = 'Evaluación Satisfacción';

// Obtener tutor
$stTutor = $db->prepare("SELECT id_tutor FROM tutores WHERE id_usuario = :uid");
$stTutor->execute([':uid' => $user['id']]);
$tutor = $stTutor->fetch();

$practicas = [];
$stats = ['pendientes' => 0, 'calificadas' => 0, 'informe_enviado' => 0, 'total' => 0];
$periodoActivo = null;
if ($tutor) {
    $stPa = $db->prepare("SELECT nombre FROM periodos_academicos WHERE activo = 1 LIMIT 1");
    $stPa->execute();
    $periodoActivo = $stPa->fetchColumn();
}

if ($tutor) {
    $stPr = $db->prepare("
        SELECT
            pr.id_practica,
            pr.estado,
            pr.nota_tutor_academico,
            pr.nota_tutor_empresa,
            pr.nota_final,
            pr.area_practica,
            pr.cargo_practica,
            pr.fecha_inicio,
            pr.fecha_fin,
            pr.horas_requeridas,
            pr.horas_cumplidas,
            CONCAT(uu.apellidos, ' ', uu.nombres) AS estudiante_nombre,
            uu.email                               AS estudiante_email,
            c.nombre                               AS carrera,
            em.razon_social                        AS empresa,
            em.nombre_representante                AS rep_empresa,
            pe.nombre                              AS periodo,
            -- informe
            inf.id_informe,
            inf.estado_tutor                       AS inf_estado,
            inf.observacion_tutor                  AS inf_obs,
            inf.fecha_entrega                      AS inf_fecha,
            -- bitácoras
            (SELECT COUNT(*) FROM bitacoras b WHERE b.id_practica = pr.id_practica) AS bits_total,
            (SELECT COUNT(*) FROM bitacoras b WHERE b.id_practica = pr.id_practica AND b.estado = 'validada') AS bits_validadas
        FROM   practicas pr
        JOIN   estudiantes est ON est.id_estudiante = pr.id_estudiante
        JOIN   usuarios uu     ON uu.id_usuario     = est.id_usuario
        JOIN   carreras c      ON c.id_carrera      = est.id_carrera
        JOIN   empresas em     ON em.id_empresa     = pr.id_empresa
        JOIN   periodos_academicos pe ON pe.id_periodo = pr.id_periodo
        LEFT   JOIN informes_finales inf ON inf.id_practica = pr.id_practica
        WHERE  pr.id_tutor = :tid
          AND  pe.activo = 1
          AND  pr.estado IN ('informe_enviado', 'calificado', 'completado', 'en_progreso')
        ORDER  BY
            CASE pr.estado
                WHEN 'informe_enviado' THEN 1
                WHEN 'en_progreso'     THEN 2
                WHEN 'calificado'      THEN 3
                ELSE 4
            END,
            uu.apellidos ASC
    ");
    $stPr->execute([':tid' => $tutor['id_tutor']]);
    $practicas = $stPr->fetchAll();

    foreach ($practicas as $p) {
        $stats['total']++;
        if ($p['estado'] === 'informe_enviado') $stats['informe_enviado']++;
        if ($p['nota_tutor_academico'] !== null) $stats['calificadas']++;
        else $stats['pendientes']++;
    }
}

// ── POST: esta página ya no maneja calificaciones ni revisión de informes
// Esas funciones están en mis_estudiantes.php
// Redirigir si alguien llega por POST a esta página
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    header('Location: evaluaciones.php'); exit;
}

// ── Bitácoras pendientes (badge sidebar) ─────────────────────────────────────
$bitsPendientes = 0;
if ($tutor) {
    $stBits = $db->prepare("
        SELECT COUNT(*) FROM bitacoras b
        JOIN practicas pr ON pr.id_practica = b.id_practica
        WHERE pr.id_tutor = :tid AND b.estado = 'enviada'
    ");
    $stBits->execute([':tid' => $tutor['id_tutor']]);
    $bitsPendientes = (int)$stBits->fetchColumn();
}
?>
<?php $paginaActual = 'evaluaciones'; ?>
<!DOCTYPE html>
<html lang="es">
<head><?php include __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'head.php'; ?>
<link rel="stylesheet" href="<?= BASE_URL ?>/assets/css/sidebar.css">
<link rel="stylesheet" href="<?= BASE_URL ?>/assets/css/sidebar-tutor.css">
</head>
<body>
<?php include __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'navbar.php'; ?>

<div class="app-shell">
  <?php include __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'sidebar-tutor.php'; ?>

  <main class="main-area">
    <div class="page-header d-flex justify-content-between align-items-start flex-wrap gap-2">
      <div>
        <h4>Evaluación de Satisfacción</h4>
        <p>Evalúa la satisfacción de tus estudiantes en sus prácticas profesionales</p>
      </div>
      <?php if ($periodoActivo): ?>
      <span style="background:#2ea8ff18;border:1px solid #2ea8ff44;color:#2ea8ff;
                   font-size:12px;font-weight:700;padding:5px 14px;border-radius:20px;
                   white-space:nowrap;align-self:center;">
        <i class="fa fa-calendar-check me-1"></i>Período activo: <?= htmlspecialchars($periodoActivo) ?>
      </span>
      <?php endif; ?>
    </div>
    <?= flashHtml() ?>

    <?php if (!$tutor): ?>
    <div class="alert-dark-danger p-3">
      <i class="fa fa-circle-exclamation me-2"></i>
      Tu perfil de tutor no está configurado. Contacta al administrador.
    </div>

    <?php elseif (empty($practicas)): ?>
    <div class="alert-dark-info p-3">
      <i class="fa fa-info-circle me-2"></i>
      No hay estudiantes asignados en el período activo. Aparecerán aquí cuando tengas prácticas asignadas.
    </div>

    <?php else: ?>

    <!-- Stat cards -->
    <div class="row g-3 mb-4">
      <div class="col-6 col-lg-3">
        <div class="stat-card">
          <div><div class="stat-num" style="color:#2ea8ff;"><?= $stats['total'] ?></div><div class="stat-label">Total estudiantes</div></div>
          <div class="stat-icon">👥</div>
        </div>
      </div>
      <div class="col-6 col-lg-3">
        <div class="stat-card">
          <div><div class="stat-num" style="color:#f7b93e;"><?= $stats['informe_enviado'] ?></div><div class="stat-label">Informes enviados</div></div>
          <div class="stat-icon">📄</div>
        </div>
      </div>
      <div class="col-6 col-lg-3">
        <div class="stat-card">
          <div><div class="stat-num" style="color:#ff9d93;"><?= $stats['pendientes'] ?></div><div class="stat-label">Sin evaluar</div></div>
          <div class="stat-icon">⏳</div>
        </div>
      </div>
      <div class="col-6 col-lg-3">
        <div class="stat-card">
          <div><div class="stat-num" style="color:#3dffa0;"><?= $stats['calificadas'] ?></div><div class="stat-label">Evaluadas</div></div>
          <div class="stat-icon">✅</div>
        </div>
      </div>
    </div>

    <!-- Tabla de evaluaciones -->
    <div class="tbl-wrap">
      <table class="table table-borderless mb-0">
        <thead>
          <tr>
            <th>Estudiante</th>
            <th>Carrera / Empresa</th>
            <th>Período</th>
            <th>Informe</th>
            <th>Bitácoras</th>
            <th>Notas</th>
            <th>Estado</th>
            <th>Acciones</th>
          </tr>
        </thead>
        <tbody>
          <?php foreach ($practicas as $p): ?>
          <tr>
            <!-- Estudiante -->
            <td>
              <div style="font-weight:600;font-size:13px;"><?= htmlspecialchars($p['estudiante_nombre']) ?></div>
              <div style="font-size:11px;color:#8b949e;"><?= htmlspecialchars($p['estudiante_email']) ?></div>
              <?php if ($p['area_practica']): ?>
              <div style="font-size:11px;color:#8b949e;font-style:italic;"><?= htmlspecialchars($p['area_practica']) ?></div>
              <?php endif; ?>
            </td>
            <!-- Carrera / Empresa -->
            <td>
              <div style="font-size:12px;"><?= htmlspecialchars($p['carrera']) ?></div>
              <div style="font-size:11px;color:#8b949e;"><?= htmlspecialchars($p['empresa']) ?></div>
            </td>
            <!-- Período -->
            <td style="font-size:12px;white-space:nowrap;">
              <?= htmlspecialchars($p['periodo']) ?>
            </td>
            <!-- Informe -->
            <td>
              <?php if ($p['id_informe']): ?>
                <span class="badge-estado <?= $p['inf_estado'] === 'calificado' ? 'st-aprobado' : ($p['inf_estado'] === 'observado' ? 'st-calificado' : 'st-postulado') ?>">
                  <?= ucfirst($p['inf_estado'] ?? 'pendiente') ?>
                </span>
                <div style="font-size:10px;color:#8b949e;margin-top:3px;"><?= formatFecha($p['inf_fecha']) ?></div>
              <?php else: ?>
                <span style="color:#8b949e;font-size:12px;">Sin informe</span>
              <?php endif; ?>
            </td>
            <!-- Bitácoras -->
            <td>
              <div style="font-size:12px;">
                <?php
                  $bPct = $p['bits_total'] > 0 ? round($p['bits_validadas'] / $p['bits_total'] * 100) : 0;
                ?>
                <span style="color:<?= $bPct >= 80 ? '#3dffa0' : ($bPct >= 50 ? '#f7b93e' : '#8b949e') ?>;">
                  <?= $p['bits_validadas'] ?>/<?= $p['bits_total'] ?>
                </span>
                <span style="color:#8b949e;"> validadas</span>
              </div>
            </td>
            <!-- Notas -->
            <td style="font-size:12px;">
              <div>
                <span style="color:#8b949e;">Tutor:</span>
                <?php if ($p['nota_tutor_academico'] !== null): ?>
                  <span style="color:#3dffa0;font-weight:700;"><?= number_format($p['nota_tutor_academico'], 2) ?></span>
                <?php else: ?>
                  <span style="color:#8b949e;">—</span>
                <?php endif; ?>
              </div>
              <div>
                <span style="color:#8b949e;">Empresa:</span>
                <?php if ($p['nota_tutor_empresa'] !== null): ?>
                  <span style="color:#c792ea;font-weight:700;"><?= number_format($p['nota_tutor_empresa'], 2) ?></span>
                <?php else: ?>
                  <span style="color:#8b949e;">—</span>
                <?php endif; ?>
              </div>
              <?php if ($p['nota_final'] !== null): ?>
              <div style="margin-top:3px;border-top:1px solid #30363d;padding-top:3px;">
                <span style="color:#8b949e;">Final:</span>
                <span style="color:#f7b93e;font-weight:700;font-size:13px;"><?= number_format($p['nota_final'], 2) ?></span>
              </div>
              <?php endif; ?>
            </td>
            <!-- Estado -->
            <td><?= badgeEstado($p['estado']) ?></td>
            <!-- Acciones — solo Evaluación Satisfacción -->
            <td>
              <a href="evaluacion_satisfaccion.php?id=<?= $p['id_practica'] ?>"
                 class="btn btn-sm btn-warning"
                 style="white-space:nowrap;">
                <i class="fa fa-heart fa-xs me-1"></i>Evaluación satisfacción
              </a>
            </td>
          </tr>
          <?php endforeach; ?>
        </tbody>
      </table>
    </div>

    <?php endif; ?>
  </main>
</div>

<!-- ── Modal: Calificar ─────────────────────────────────────────────── -->
<!-- ELIMINADO: La calificación se hace desde Mis Estudiantes -->

<!-- ── Modal: Revisar informe ──────────────────────────────────────── -->
<!-- ELIMINADO: La revisión de informe se hace desde Mis Estudiantes -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js"></script>
<script>
var BASE_URL = '<?= BASE_URL ?>';
</script>
</body>
</html>