<?php
declare(strict_types=1);

session_start();

require_once __DIR__ . '/conexao.php';
require_once __DIR__ . '/solicitacao_publica_helpers.php';

date_default_timezone_set('America/Sao_Paulo');
$mysqli->set_charset('utf8mb4');

$token = spTexto($_GET['token'] ?? '', 64);
$solicitacao = (
    $token !== '' &&
    spTabelaExiste($mysqli, 'solicitacoes_os_publicas')
)
    ? spBuscarPorToken($mysqli, $token)
    : null;

if (!$solicitacao) {
    http_response_code(404);
    exit('Solicitação não encontrada ou link inválido.');
}

$status = spStatus((string) $solicitacao['status']);
$urlOs = '';

if (
    !empty($solicitacao['os_token']) &&
    (int) ($solicitacao['os_id'] ?? 0) > 0
) {
    $urlOs = spBaseUrl() .
        '/acompanhar_os.php?token=' .
        rawurlencode((string) $solicitacao['os_token']);
}
?>
<!doctype html><html lang="pt-BR"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="refresh" content="120">
<title>Acompanhar solicitação</title>
<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet">
<link href="solicitacao_publica_style.css?v=1" rel="stylesheet"></head>
<body><div class="top-line"></div><div class="bg-grid"></div><main class="page">
<section class="hero"><div class="brand"><div class="logo"><img src="assets/logo_pref.jpg" alt=""></div><div><span class="eyebrow"><i class="bi bi-radar"></i>Acompanhamento público</span><h1><?= spE($status['rotulo']) ?></h1><p><?= spE($status['descricao']) ?></p></div></div><aside class="hero-side"><strong><?= spE($solicitacao['protocolo']) ?></strong><span>Solicitação realizada em <?= spE(spData($solicitacao['data_solicitacao'])) ?>.</span></aside></section>

<section class="card">
<div class="card-head"><div class="card-title"><span class="card-icon"><i class="bi <?= spE($status['icone']) ?>"></i></span><div><h2>Situação atual</h2><p>Esta página é atualizada automaticamente.</p></div></div></div>

<?php if ($solicitacao['status'] === 'AGUARDANDO_ENTREGA'): ?>
<div class="notice warning"><i class="bi bi-stopwatch-fill"></i><span>O equipamento ainda não foi confirmado na TI. <strong>Nenhum prazo de atendimento está correndo.</strong></span></div>
<?php elseif ($solicitacao['status'] === 'RECEBIDA'): ?>
<div class="notice success"><i class="bi bi-check-circle-fill"></i><span>Recebido em <?= spE(spData($solicitacao['data_recebimento'])) ?> por <?= spE($solicitacao['recebido_por']) ?>. A OS <?= spE($solicitacao['numero_os']) ?> foi aberta e o prazo começou nesse momento.</span></div>
<?php else: ?>
<div class="notice danger"><i class="bi bi-x-octagon-fill"></i><span><?= spE($solicitacao['motivo_cancelamento'] ?: 'Solicitação encerrada pela equipe técnica.') ?></span></div>
<?php endif; ?>

<div class="status-grid">
    <div class="status-step done"><i class="bi bi-send-check-fill"></i><strong>Solicitação registrada</strong><span><?= spE(spData($solicitacao['data_solicitacao'])) ?></span></div>
    <div class="status-step <?= $solicitacao['status'] === 'AGUARDANDO_ENTREGA' ? 'active' : ($solicitacao['status'] === 'RECEBIDA' ? 'done' : '') ?>"><i class="bi bi-box-arrow-in-down"></i><strong>Recebimento na TI</strong><span><?= $solicitacao['status'] === 'RECEBIDA' ? spE(spData($solicitacao['data_recebimento'])) : 'Aguardando confirmação.' ?></span></div>
    <div class="status-step <?= $solicitacao['status'] === 'RECEBIDA' ? 'active' : '' ?>"><i class="bi bi-tools"></i><strong>Atendimento técnico</strong><span><?= $solicitacao['status'] === 'RECEBIDA' ? 'Acompanhe pela OS oficial.' : 'Ainda não iniciado.' ?></span></div>
</div>

<div class="summary">
    <div class="summary-item"><span>Solicitante</span><strong><?= spE($solicitacao['nome']) ?></strong></div>
    <div class="summary-item"><span>Setor</span><strong><?= spE($solicitacao['setor']) ?></strong></div>
    <div class="summary-item"><span>Equipamento</span><strong><?= spE($solicitacao['tipo_equipamento']) ?></strong></div>
    <div class="summary-item"><span>Patrimônio</span><strong><?= spE($solicitacao['patrimonio'] ?: 'Não informado') ?></strong></div>
    <div class="summary-item"><span>Defeito</span><strong><?= spE($solicitacao['defeito']) ?></strong></div>
    <div class="summary-item"><span>OS oficial</span><strong><?= spE($solicitacao['numero_os'] ?: 'Ainda não criada') ?></strong></div>
</div>

<div class="protocol-actions">
    <?php if ($urlOs !== ''): ?><a class="button primary" href="<?= spE($urlOs) ?>"><i class="bi bi-broadcast-pin"></i>Acompanhar OS oficial</a><?php endif; ?>
    <button class="button" onclick="location.reload()"><i class="bi bi-arrow-clockwise"></i>Atualizar</button>
    <a class="button" href="solicitar_os.php"><i class="bi bi-plus-circle"></i>Nova solicitação</a>
</div>
</section>
<footer class="footer"><span>Prefeitura de Extrema — Gerência de Tecnologia</span><span>Atualização automática a cada 2 minutos.</span></footer>
</main></body></html>
