<?php
// api/ver_doc_ppp.php — MODIFICADO PARA AZURE BLOB STORAGE
// Sirve el PDF firmado de un documento PPP aprobado al estudiante dueño
require_once __DIR__ . '/../config/app.php';
require_once __DIR__ . '/../config/onedrive.php';
require_once __DIR__ . '/../includes/auth.php';
require_once __DIR__ . '/../includes/functions.php';
require_once __DIR__ . '/../includes/OneDriveStorage.php';
requireRol(ROL_ESTUDIANTE);

$user       = currentUser();
$db         = getDB();
$codigoDoc  = trim($_GET['doc']      ?? '');
$idPractica = (int)($_GET['practica'] ?? 0);

$VALIDOS = ['001','002','003','004','002A','005','008','009','010','011','012'];
if (!in_array($codigoDoc, $VALIDOS) || $idPractica <= 0) {
    http_response_code(400); exit('Parámetros inválidos.');
}

$st = $db->prepare("
    SELECT d.ruta_archivo, d.nombre_archivo, d.estado
    FROM   documentos_ppp_gestion d
    JOIN   practicas p  ON p.id_practica  = d.id_practica
    JOIN   estudiantes e ON e.id_estudiante = p.id_estudiante
    WHERE  d.id_practica = :ip
      AND  d.codigo_doc  = :cod
      AND  e.id_usuario  = :uid
      AND  d.estado      = 'aprobado'
    LIMIT 1
");
$st->execute([':ip' => $idPractica, ':cod' => $codigoDoc, ':uid' => $user['id']]);
$doc = $st->fetch();

if (!$doc) {
    http_response_code(403); exit('Documento no disponible.');
}

OneDriveStorage::servirArchivo($doc['ruta_archivo'], $doc['nombre_archivo'], 'application/pdf');
