<?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_COORDINADOR);
$user=$currentUser=currentUser(); $db=getDB(); $pageTitle='Prácticas';

$filtroEstado = $_GET['estado']??'';
$where = $filtroEstado ? "WHERE pr.estado=:est" : "";
$params = $filtroEstado ? [':est'=>$filtroEstado] : [];
$sql = "SELECT pr.id_practica, pr.estado, pr.horas_cumplidas, pr.horas_requeridas,
               pr.fecha_inicio, pr.fecha_fin,
               CONCAT(uu.nombres,' ',uu.apellidos) AS estudiante,
               em.razon_social AS empresa, pe.nombre AS periodo
        FROM practicas pr
        JOIN estudiantes e ON e.id_estudiante=pr.id_estudiante
        JOIN usuarios uu ON uu.id_usuario=e.id_usuario
        JOIN empresas em ON em.id_empresa=pr.id_empresa
        JOIN periodos_academicos pe ON pe.id_periodo=pr.id_periodo
        $where ORDER BY pr.created_at DESC LIMIT 100";
$st=$db->prepare($sql); $st->execute($params);
$practicas=$st->fetchAll();

if ($_SERVER['REQUEST_METHOD']==='POST') {
    $id=(int)($_POST['id_practica']??0);
    $nuevo=in_array($_POST['estado']??'',['aprobado','rechazado','en_progreso','calificado','completado'])?$_POST['estado']:null;
    $obs=trim($_POST['observaciones']??'');
    $motivo=trim($_POST['motivo_rechazo']??'');
    if ($id && $nuevo) {
        $db->prepare("UPDATE practicas SET estado=:e, observaciones=:o, motivo_rechazo=:m WHERE id_practica=:id")
           ->execute([':e'=>$nuevo,':o'=>$obs,':m'=>$motivo,':id'=>$id]);
        registrarAudit($user['id'],'cambio_estado_practica','practicas',$id);
        flashSet('ok','Estado actualizado a: '.$nuevo);
        header('Location: practicas.php'); exit;
    }
}
?>
<!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-grupos.css">
</head>

<body>
<?php include __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'navbar.php'; ?>
<div class="app-shell">
  <aside class="sidebar">
    <div class="sidebar-label">Coordinador</div>
    <a href="dashboard.php"><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="practicas.php" class="active"><span class="icon"><i class="fa fa-briefcase"></i></span> Prácticas</a>
      <a href="postulaciones.php"><span class="icon"><i class="fa fa-inbox"></i></span> Postulaciones</a>
      <a href="fichas_ppp.php"><span class="icon"><i class="fa fa-file-pdf"></i></span> Fichas PPP</a>
      <a href="expedientes.php"><span class="icon"><i class="fa fa-folder-open"></i></span> Expedientes PPP</a>
      <a href="bitacoras.php"><span class="icon"><i class="fa fa-book-open"></i></span> Bitácoras</a>
    </div>

    <!-- Vinculación — Verde -->
    <div class="sidebar-group g-vinculacion">
      <span class="sg-label"><i class="fa fa-handshake me-1"></i>Vinculación</span>
      <a href="vinculacion.php"><span class="icon"><i class="fa fa-handshake"></i></span> Vinculación</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="titulacion.php"><span class="icon"><i class="fa fa-graduation-cap"></i></span> Titulación</a>
    </div>

    <!-- Reportes CES — Morado -->
    <div class="sidebar-group g-reportes">
      <span class="sg-label"><i class="fa fa-chart-bar me-1"></i>Reportes</span>
      <a href="reportes.php"><span class="icon"><i class="fa fa-chart-bar"></i></span> Reportes CES</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>
  </aside>

  <main class="main-area">
    <div class="page-header d-flex justify-content-between align-items-center">
      <div><h4>Gestión de Prácticas</h4><p>Aprobación, seguimiento y calificación</p></div>
    </div>
    <?=flashHtml()?>
    <div class="d-flex gap-2 mb-3 flex-wrap">
      <?php foreach(['','postulado','aprobado','en_progreso','calificado','completado','rechazado'] as $e): ?>
      <a href="?estado=<?=$e?>" class="btn btn-sm <?=$filtroEstado===$e?'btn-primary':'btn-outline-secondary'?>">
        <?=$e?htmlspecialchars(ucfirst(str_replace('_',' ',$e))):'Todas'?>
      </a>
      <?php endforeach; ?>
    </div>
    <div class="tbl-wrap">
      <table class="table table-borderless mb-0">
        <thead><tr><th>Estudiante</th><th>Empresa</th><th>Período</th><th>Avance</th><th>Estado</th><th>Acciones</th></tr></thead>
        <tbody>
          <?php if(empty($practicas)): ?>
          <tr><td colspan="6" class="text-center text-muted py-4">Sin prácticas en este estado.</td></tr>
          <?php else: foreach($practicas as $p): $pct=pct($p['horas_cumplidas'],$p['horas_requeridas']); ?>
          <tr>
            <td><strong style="font-size:13px;"><?=htmlspecialchars($p['estudiante'])?></strong></td>
            <td style="font-size:12px;"><?=htmlspecialchars($p['empresa'])?></td>
            <td style="font-size:12px;"><?=htmlspecialchars($p['periodo'])?></td>
            <td>
              <div style="display:flex;align-items:center;gap:8px;">
                <div style="flex:1;background:#30363d;border-radius:4px;height:6px;">
                  <div style="width:<?=$pct?>%;background:#2ea8ff;height:6px;border-radius:4px;"></div>
                </div>
                <span style="font-size:11px;color:#8b949e;"><?=$pct?>%</span>
              </div>
            </td>
            <td><?=badgeEstado($p['estado'])?></td>
            <td>
              <button class="btn btn-sm btn-outline-secondary btn-gestionar"
                data-id="<?=$p['id_practica']?>" data-estado="<?=$p['estado']?>">
                <i class="fa fa-pen-to-square"></i>
              </button>
            </td>
          </tr>
          <?php endforeach; endif; ?>
        </tbody>
      </table>
    </div>

    <!-- Modal gestionar estado -->
    <div class="modal fade" id="modalEstado" tabindex="-1">
      <div class="modal-dialog"><div class="modal-content">
        <div class="modal-header"><h5 class="modal-title">Cambiar estado de práctica</h5>
          <button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
        <form method="POST">
          <input type="hidden" name="id_practica" id="m-id">
          <div class="modal-body">
            <div class="mb-3"><label class="form-label">Nuevo estado</label>
              <select name="estado" class="form-select">
                <option value="aprobado">Aprobado</option>
                <option value="rechazado">Rechazado</option>
                <option value="en_progreso">En progreso</option>
                <option value="calificado">Calificado</option>
                <option value="completado">Completado</option>
              </select></div>
            <div class="mb-3"><label class="form-label">Observaciones</label>
              <textarea name="observaciones" class="form-control" rows="2"></textarea></div>
            <div class="mb-3"><label class="form-label">Motivo de rechazo (si aplica)</label>
              <textarea name="motivo_rechazo" class="form-control" rows="2"></textarea></div>
          </div>
          <div class="modal-footer">
            <button type="submit" class="btn btn-primary">Guardar cambio</button>
          </div>
        </form>
      </div></div>
    </div>
  </main>
</div>
<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>
$(function(){
  $(document).on('click','.btn-gestionar',function(){
    $('#m-id').val($(this).data('id'));
    new bootstrap.Modal('#modalEstado').show();
  });
});
</script>
</body>
</html>