<?php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");

header('Content-Type: application/json');
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: 0");

$documentRoot = realpath(__DIR__ . '/../..');
$logFile = $documentRoot . "/php/api/log_pdf.json";

//$logFile = '/var/www/vhosts/cst.cat/subdomains/pefir/httpdocs/php/api/log_pdf.json';

// Obtener el número único del registro a modificar (pasado como parámetro GET)
$uniqueNumber = isset($_GET['uniqueNumber']) ? (int)$_GET['uniqueNumber'] : null;

// Obtener los datos del cuerpo de la solicitud (debe enviarse como JSON)
$inputData = json_decode(file_get_contents('php://input'), true);

if ($uniqueNumber === null || $inputData === null) {
    echo json_encode(['status' => 'error', 'message' => 'Número único o datos no proporcionados.']);
    exit;
}

if (file_exists($logFile)) {
    $jsonContent = file_get_contents($logFile);
    $logs = json_decode($jsonContent, true);

    if ($logs === null) {
        echo json_encode(['status' => 'error', 'message' => 'No se pudo decodificar el archivo de log.']);
        exit;
    }

    $found = false;
    // Iterar sobre los registros para encontrar y modificar el registro correspondiente
    foreach ($logs as &$log) {
        if (isset($log['uniqueNumber']) && (int)$log['uniqueNumber'] === $uniqueNumber) {
            // Modificar los campos con los nuevos datos
            if (isset($inputData['qr_nom'])) $log['qr_nom'] = $inputData['qr_nom'];
            if (isset($inputData['autor'])) $log['autor'] = $inputData['autor'];
            if (isset($inputData['pdf_nom'])) $log['pdf_nom'] = $inputData['pdf_nom'];
            
            $found = true;
            break;
        }
    }

    if (!$found) {
        echo json_encode(['status' => 'error', 'message' => 'Registro no encontrado.']);
        exit;
    }

    // Guardar los registros modificados en el archivo de log
    if (file_put_contents($logFile, json_encode($logs, JSON_PRETTY_PRINT))) {
        echo json_encode(['status' => 'success', 'message' => 'Registro modificado.']);
    } else {
        echo json_encode(['status' => 'error', 'message' => 'No se pudo guardar el archivo de log.']);
    }
} else {
    echo json_encode(['status' => 'error', 'message' => 'Archivo de log no encontrado.']);
}
?>
