<?php
declare(strict_types=1);

require_once __DIR__ . '/auth.php';
require_once __DIR__ . '/conexao.php';
require_once __DIR__ . '/impressoras_helpers.php';

impressorasExigirAcesso();
$mysqli->set_charset('utf8mb4');

$id = (int) ($_GET['id'] ?? 0);

$stmt = impExecutar(
    $mysqli,
    'SELECT arquivo,nome_original,mime_type,tamanho_bytes
     FROM ti_impressora_anexos
     WHERE id = ?
     LIMIT 1',
    [$id]
);

$anexo = $stmt->get_result()->fetch_assoc();
$stmt->close();

if (!$anexo) {
    http_response_code(404);
    exit('Anexo não encontrado.');
}

$arquivo = realpath(
    __DIR__ . '/' . ltrim((string) $anexo['arquivo'], '/')
);
$base = realpath(__DIR__ . '/uploads/impressoras');

if (
    !$arquivo ||
    !$base ||
    !str_starts_with($arquivo, $base . DIRECTORY_SEPARATOR) ||
    !is_file($arquivo)
) {
    http_response_code(404);
    exit('Arquivo indisponível.');
}

$nome = str_replace(
    ['"', "\r", "\n"],
    '',
    (string) $anexo['nome_original']
);

header('Content-Type: ' . $anexo['mime_type']);
header('Content-Length: ' . filesize($arquivo));
header(
    'Content-Disposition: inline; filename="' . $nome . '"'
);
header('X-Content-Type-Options: nosniff');
header('Cache-Control: private, no-store');

readfile($arquivo);
exit;
