<?php
/**
 * includes/sidebar-estudiante.php
 * Sidebar compartido del módulo Estudiante.
 *
 * Uso en cada página:
 *   $paginaActual = 'dashboard';
 *   include __DIR__ . '/../../includes/sidebar-estudiante.php';
 *
 * Valores de $paginaActual:
 *   'dashboard', 'mi_practica', 'bitacoras', 'convalidacion', 'evaluacion',
 *   'informe_final', 'certificado', 'mis_documentos',
 *   'vinculacion', 'vinculacion_bitacoras', 'titulacion',
 *   'perfil', 'contrasena'
 */

// ── Detectar convalidación para desactivar Mi Práctica y Bitácoras ──
$__esConval = $__esConvalSidebar ?? false;
if (!$__esConval && !empty($practica['id_practica'])) {
    try {
        $__stConvSb = $db->prepare("SELECT COUNT(*) FROM convalidaciones WHERE id_practica=:pid");
        $__stConvSb->execute([':pid' => $practica['id_practica']]);
        $__esConval = (int)$__stConvSb->fetchColumn() > 0
                      || ($practica['modalidad'] ?? '') === 'convalidacion';
    } catch (Exception $e) {}
}

// ── Detectar pago de PRÁCTICA pendiente (bloquear Mi Práctica y Bitácoras) ──
// Solo aplica si NO es convalidación (en convalidación ya están bloqueados por $__esConval)
$__pagoPractPendiente = false;
if (!$__esConval && !empty($practica['id_practica'])) {
    $__estadoPagoPract = $practica['estado_pago'] ?? 'pendiente';
    // Solo bloquear si está en revisión (ya envió pero aún no aprueban)
    $__pagoPractPendiente = ($__estadoPagoPract === 'enviada');
}

// ── Detectar pago de CONVALIDACIÓN pendiente (bloquear Mi Práctica y Bitácoras) ──
$__pagoConvPendiente = false;
if ($__esConval && !empty($practica['id_practica'])) {
    try {
        $__stConvPago = $db->prepare("
            SELECT estado_pago FROM convalidaciones
            WHERE id_practica = :pid
            ORDER BY created_at DESC LIMIT 1
        ");
        $__stConvPago->execute([':pid' => $practica['id_practica']]);
        $__estadoPagoConv = $__stConvPago->fetchColumn() ?: 'pendiente';
        // Solo bloquear si está en revisión (ya envió pero aún no aprueban)
        $__pagoConvPendiente = ($__estadoPagoConv === 'enviada');
    } catch (Exception $e) {}
}

// ── Flag unificado: bloquear Mi Práctica y Bitácoras solo cuando comprobante está en revisión ──
$__bloquearPorPago = $__pagoPractPendiente || $__pagoConvPendiente;

// ── Badges (solo si no vienen del contexto) ──
if (!isset($bitObservadas)) {
    $bitObservadas = 0;
    if (!empty($practica['id_practica'])) {
        try {
            $__st = $db->prepare("SELECT COUNT(*) FROM bitacoras WHERE id_practica=:p AND estado='observada'");
            $__st->execute([':p' => $practica['id_practica']]);
            $bitObservadas = (int)$__st->fetchColumn();
        } catch (Exception $e) {}
    }
}

if (!isset($bitBorrador)) {
    $bitBorrador = 0;
    if (!empty($practica['id_practica'])) {
        try {
            $__st = $db->prepare("SELECT COUNT(*) FROM bitacoras WHERE id_practica=:p AND estado='borrador'");
            $__st->execute([':p' => $practica['id_practica']]);
            $bitBorrador = (int)$__st->fetchColumn();
        } catch (Exception $e) {}
    }
}

if (!isset($informeObservado)) {
    $informeObservado = null;
    if (!empty($practica['id_practica'])) {
        try {
            $__st = $db->prepare("SELECT id_informe FROM informes_finales WHERE id_practica=:p AND estado_tutor='observado' LIMIT 1");
            $__st->execute([':p' => $practica['id_practica']]);
            $informeObservado = $__st->fetch() ?: null;
        } catch (Exception $e) {}
    }
}

// ── Práctica activa (para link evaluacion) ──
if (!isset($practica)) $practica = null;

function sidebarEstActive(string $pagina): string {
    global $paginaActual;
    return ($paginaActual ?? '') === $pagina ? ' class="active"' : '';
}

// Base URL para links — permite cargar el sidebar desde auth/ u otros directorios
global $sidebarBaseUrl;
$__base = rtrim($sidebarBaseUrl ?? '', '/') ?: '.';

// Siempre definir $__tienePractica
$__tienePractica = !empty($practica['id_practica']);
?>
<aside class="sidebar">
  <div class="sidebar-label" style="color:#ffffff;">Estudiante</div>
  <a href="<?= $__base ?>/dashboard.php"<?= sidebarEstActive('dashboard') ?>>
    <span class="icon"><i class="fa fa-gauge"></i></span> Dashboard
  </a>

  <!-- ── Prácticas PPP — Azul ── -->
  <div class="sidebar-group g-practicas">
    <span class="sg-label"><i class="fa fa-briefcase me-1"></i>Prácticas PPP</span>
    <a href="<?= $__base ?>/mi_practica.php"<?= sidebarEstActive('mi_practica') ?>>
      <span class="icon"><i class="fa fa-briefcase"></i></span> Mi Práctica
    </a>
    <a href="<?= $__base ?>/bitacoras.php"<?= sidebarEstActive('bitacoras') ?>>
      <span class="icon"><i class="fa fa-book-open"></i></span> Bitácoras
      <?php if ($bitObservadas > 0): ?>
        <span class="badge rounded-pill ms-auto" style="background:#ef4444;color:#fff;font-size:10px;"><?= $bitObservadas ?></span>
      <?php elseif ($bitBorrador > 0): ?>
        <span class="badge rounded-pill ms-auto" style="background:#f7b93e;color:#0d1117;font-size:10px;"><?= $bitBorrador ?></span>
      <?php endif; ?>
    </a>
    <a href="<?= $__base ?>/convalidacion.php"<?= sidebarEstActive('convalidacion') ?>>
      <span class="icon"><i class="fa fa-rotate"></i></span> Convalidación
    </a>
    <?php if ($__tienePractica): ?>
    <a href="<?= $__base ?>/evaluacion.php?id=<?= $practica['id_practica'] ?>"<?= sidebarEstActive('evaluacion') ?>>
      <span class="icon"><i class="fa fa-star"></i></span> Evaluación
    </a>
    <?php else: ?>
    <a href="#" onclick="event.preventDefault();document.getElementById('modal-sin-practica').style.display='flex';"
       style="opacity:.55;cursor:pointer;">
      <span class="icon"><i class="fa fa-star"></i></span> Evaluación
    </a>
    <?php endif; ?>
  </div>

  <!-- ── Documentos — Verde ── -->
  <div class="sidebar-group g-documentos">
    <span class="sg-label"><i class="fa fa-folder-open me-1"></i>Documentos</span>
    <a href="<?= $__base ?>/informe_final.php"<?= sidebarEstActive('informe_final') ?>>
      <span class="icon"><i class="fa fa-file-lines"></i></span> Informe Final
      <?php if ($informeObservado): ?>
        <span class="badge rounded-pill ms-auto" style="background:#ef4444;color:#fff;font-size:10px;">!</span>
      <?php endif; ?>
    </a>
    <a href="<?= $__base ?>/certificado.php"<?= sidebarEstActive('certificado') ?>>
      <span class="icon"><i class="fa fa-certificate"></i></span> Certificados
    </a>
    <a href="<?= $__base ?>/mis_documentos.php"<?= sidebarEstActive('mis_documentos') ?>>
      <span class="icon"><i class="fa fa-folder-open"></i></span> Mi Expediente
    </a>
  </div>

  <!-- ── Vinculación — Verde esmeralda ── -->
  <div class="sidebar-group g-vinculacion">
    <span class="sg-label"><i class="fa fa-handshake me-1"></i>Vinculación</span>
    <a href="<?= $__base ?>/vinculacion.php"<?= sidebarEstActive('vinculacion') ?>>
      <span class="icon"><i class="fa fa-handshake"></i></span> Mi Vinculación
    </a>
    <a href="<?= $__base ?>/mi_vinculacion.php"<?= sidebarEstActive('vinculacion_bitacoras') ?>>
      <span class="icon"><i class="fa fa-book-open"></i></span> Bitácoras Vinc.
    </a>
  </div>

  <!-- ── Titulación — Naranja ── -->
  <div class="sidebar-group g-titulacion">
    <span class="sg-label"><i class="fa fa-graduation-cap me-1"></i>Titulación</span>
    <a href="<?= $__base ?>/titulacion.php"<?= sidebarEstActive('titulacion') ?>>
      <span class="icon"><i class="fa fa-graduation-cap"></i></span> Titulación
    </a>
  </div>

  <!-- ── Cuenta — Morado ── -->
  <div class="sidebar-group g-cuenta">
    <span class="sg-label"><i class="fa fa-user me-1"></i>Cuenta</span>
    <a href="<?= $__base ?>/perfil.php"<?= sidebarEstActive('perfil') ?>>
      <span class="icon"><i class="fa fa-user"></i></span> Mi Perfil
    </a>
    <a href="<?= $__base ?>/cambiar_contrasena.php"<?= sidebarEstActive('contrasena') ?>>
      <span class="icon"><i class="fa fa-lock"></i></span> Contraseña
    </a>
  </div>

  <div class="sidebar-sep"></div>
  <a href="<?= BASE_URL ?>/auth/logout.php">
    <span class="icon"><i class="fa fa-right-from-bracket"></i></span> Salir
  </a>

<!-- Modal: sin práctica para evaluar -->
<!-- ══ Modal: Evaluación no disponible ══ -->
<div id="modal-sin-practica"
     style="display:none;position:fixed;inset:0;z-index:9999;
            align-items:center;justify-content:center;
            background:rgba(15,23,42,.65);backdrop-filter:blur(6px);">
  <div style="background:#ffffff;border-radius:20px;padding:36px 32px;
              max-width:420px;width:92%;
              box-shadow:0 32px 80px rgba(0,0,0,.25);
              text-align:center;
              animation:sidebarModalIn .25s cubic-bezier(.34,1.56,.64,1);">

    <!-- Ícono -->
    <div style="width:72px;height:72px;border-radius:50%;
                background:linear-gradient(135deg,#fef3c7,#fde68a);
                display:flex;align-items:center;justify-content:center;
                margin:0 auto 20px;
                box-shadow:0 8px 24px rgba(245,158,11,.20);">
      <i class="fa fa-star" style="font-size:30px;color:#f59e0b;"></i>
    </div>

    <!-- Título -->
    <h5 style="color:#0f172a;font-weight:700;font-size:18px;margin-bottom:10px;line-height:1.3;">
      Evaluación no disponible
    </h5>

    <!-- Descripción -->
    <p style="color:#64748b;font-size:13px;line-height:1.7;margin-bottom:6px;">
      Para completar la <strong style="color:#0f172a;">Evaluación de Satisfacción</strong>
      necesitas tener una práctica preprofesional <strong style="color:#0f172a;">aprobada</strong>.
    </p>
    <p style="color:#94a3b8;font-size:12px;line-height:1.6;margin-bottom:26px;">
      Solicita tu práctica desde <em>Mi Práctica</em> y una vez aprobada
      podrás completar este formulario.
    </p>

    <!-- Botones -->
    <div style="display:flex;gap:10px;justify-content:center;flex-wrap:wrap;">
      <a href="<?= $__base ?>/mi_practica.php"
         style="display:inline-flex;align-items:center;gap:8px;
                background:#0f172a;color:#fff;border:none;border-radius:10px;
                padding:11px 24px;font-size:13px;font-weight:600;
                text-decoration:none;transition:background .15s;">
        <i class="fa fa-briefcase"></i> Ir a Mi Práctica
      </a>
      <button onclick="document.getElementById('modal-sin-practica').style.display='none';"
              style="display:inline-flex;align-items:center;gap:8px;
                     background:#f1f5f9;color:#475569;
                     border:1px solid #e2e8f0;border-radius:10px;
                     padding:11px 24px;font-size:13px;font-weight:600;
                     cursor:pointer;transition:background .15s;">
        <i class="fa fa-xmark"></i> Cerrar
      </button>
    </div>
  </div>
</div>

<style>
@keyframes sidebarModalIn {
  from { opacity:0; transform:scale(.88) translateY(12px); }
  to   { opacity:1; transform:scale(1) translateY(0); }
}
</style>

<!-- ══ Modal: Convalidación PPP ══ -->
<div id="modal-conval-ppp"
     style="display:none;position:fixed;inset:0;z-index:9999;
            align-items:center;justify-content:center;
            background:rgba(15,23,42,.65);backdrop-filter:blur(6px);">
  <div style="background:#ffffff;border-radius:20px;padding:36px 32px;
              max-width:420px;width:92%;
              box-shadow:0 32px 80px rgba(0,0,0,.25);
              text-align:center;
              animation:sidebarModalIn .25s cubic-bezier(.34,1.56,.64,1);">

    <div style="width:72px;height:72px;border-radius:50%;
                background:linear-gradient(135deg,#fff7ed,#fed7aa);
                display:flex;align-items:center;justify-content:center;
                margin:0 auto 20px;
                box-shadow:0 8px 24px rgba(249,115,22,.20);">
      <i class="fa fa-rotate" style="font-size:30px;color:#f97316;"></i>
    </div>

    <h5 style="color:#0f172a;font-weight:700;font-size:18px;margin-bottom:10px;line-height:1.3;">
      Opción no disponible
    </h5>

    <p style="color:#64748b;font-size:13px;line-height:1.7;margin-bottom:6px;">
      Elegiste la modalidad <strong style="color:#f97316;">Convalidación de Prácticas Preprofesionales</strong>.
    </p>
    <p style="color:#94a3b8;font-size:12px;line-height:1.6;margin-bottom:26px;">
      En esta modalidad, <strong>Mi Práctica</strong> y <strong>Bitácoras</strong>
      no aplican. Tu proceso se gestiona desde <em>Convalidación</em> e <em>Informe Final</em>.
    </p>

    <div style="display:flex;gap:10px;justify-content:center;flex-wrap:wrap;">
      <a href="convalidacion.php"
         style="display:inline-flex;align-items:center;gap:8px;
                background:#f97316;color:#fff;border:none;border-radius:10px;
                padding:11px 24px;font-size:13px;font-weight:600;
                text-decoration:none;transition:background .15s;">
        <i class="fa fa-rotate"></i> Ir a Convalidación
      </a>
      <button onclick="document.getElementById('modal-conval-ppp').style.display='none';"
              style="display:inline-flex;align-items:center;gap:8px;
                     background:#f1f5f9;color:#475569;
                     border:1px solid #e2e8f0;border-radius:10px;
                     padding:11px 24px;font-size:13px;font-weight:600;
                     cursor:pointer;transition:background .15s;">
        <i class="fa fa-xmark"></i> Cerrar
      </button>
    </div>
  </div>
</div>

<!-- ══ Modal: Pago pendiente de validación ══ -->
<div id="modal-pago-pendiente"
     style="display:none;position:fixed;inset:0;z-index:9999;
            align-items:center;justify-content:center;
            background:rgba(15,23,42,.65);backdrop-filter:blur(6px);">
  <div style="background:#ffffff;border-radius:20px;padding:36px 32px;
              max-width:420px;width:92%;
              box-shadow:0 32px 80px rgba(0,0,0,.25);
              text-align:center;
              animation:sidebarModalIn .25s cubic-bezier(.34,1.56,.64,1);">

    <div style="width:72px;height:72px;border-radius:50%;
                background:linear-gradient(135deg,#fff7ed,#fed7aa);
                display:flex;align-items:center;justify-content:center;
                margin:0 auto 20px;
                box-shadow:0 8px 24px rgba(249,115,22,.20);">
      <i class="fa fa-file-invoice-dollar" style="font-size:30px;color:#f97316;"></i>
    </div>

    <h5 style="color:#0f172a;font-weight:700;font-size:18px;margin-bottom:10px;line-height:1.3;">
      Pago pendiente de validación
    </h5>

    <p style="color:#64748b;font-size:13px;line-height:1.7;margin-bottom:6px;">
      Para continuar con <strong style="color:#0f172a;">Mi Práctica</strong> y
      <strong style="color:#0f172a;">Bitácoras</strong>, tu comprobante de pago
      debe ser <strong style="color:#059669;">validado por Facturación</strong>.
    </p>
    <p style="color:#94a3b8;font-size:12px;line-height:1.6;margin-bottom:26px;">
      Una vez que Facturación apruebe tu pago, estas opciones se habilitarán automáticamente.
    </p>

    <div style="display:flex;gap:10px;justify-content:center;flex-wrap:wrap;">
      <?php if ($__esConval): ?>
      <a href="<?= $__base ?>/convalidacion.php"
         style="display:inline-flex;align-items:center;gap:8px;
                background:#f97316;color:#fff;border:none;border-radius:10px;
                padding:11px 24px;font-size:13px;font-weight:600;
                text-decoration:none;">
        <i class="fa fa-file-invoice-dollar"></i> Ver comprobante
      </a>
      <?php else: ?>
      <a href="<?= $__base ?>/mi_practica.php"
         style="display:inline-flex;align-items:center;gap:8px;
                background:#f97316;color:#fff;border:none;border-radius:10px;
                padding:11px 24px;font-size:13px;font-weight:600;
                text-decoration:none;">
        <i class="fa fa-file-invoice-dollar"></i> Ver comprobante
      </a>
      <?php endif; ?>
      <button onclick="document.getElementById('modal-pago-pendiente').style.display='none';"
              style="display:inline-flex;align-items:center;gap:8px;
                     background:#f1f5f9;color:#475569;
                     border:1px solid #e2e8f0;border-radius:10px;
                     padding:11px 24px;font-size:13px;font-weight:600;
                     cursor:pointer;">
        <i class="fa fa-xmark"></i> Cerrar
      </button>
    </div>
  </div>
</div>

</aside>