<?php
declare(strict_types=1);

require_once __DIR__ . '/auth.php';

if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}

require_once __DIR__ . '/alerta_global_helpers.php';

header('Content-Type: text/html; charset=utf-8');

function e(mixed $valor): string
{
    return htmlspecialchars((string) $valor, ENT_QUOTES, 'UTF-8');
}

$teste = [
    'PHP' => PHP_VERSION,
    'Usuário da sessão' => alertaUsuarioAtual(),
    'É administrador' => alertaUsuarioEhAdmin() ? 'SIM' : 'NÃO',
    'Diretório temporário' => sys_get_temp_dir(),
    'Caminho do armazenamento' => alertaStoragePath(),
    'Diretório gravável' => is_writable(sys_get_temp_dir()) ? 'SIM' : 'NÃO'
];

$erro = '';
$gravacao = 'NÃO EXECUTADA';

try {
    alertaStorageAlterar(
        static function (array &$dados): void {
            $dados['diagnostico_em'] = alertaAgoraBanco();
        }
    );

    $dados = alertaStorageLer();

    $gravacao = !empty($dados['diagnostico_em'])
        ? 'SUCESSO'
        : 'FALHOU';
} catch (Throwable $exception) {
    $erro = $exception->getMessage();
    $gravacao = 'ERRO';
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Diagnóstico do Alerta Global</title>
    <style>
        body{margin:0;padding:30px;font-family:Arial,sans-serif;color:#172438;background:#edf3f8}
        main{max-width:850px;margin:auto;padding:26px;border-radius:24px;background:#fff;box-shadow:0 25px 70px rgba(8,57,111,.14)}
        h1{margin-top:0;color:#08396f}.row{display:grid;grid-template-columns:230px 1fr;gap:12px;padding:12px;border-bottom:1px solid #e2eaf0}
        .status{margin-top:18px;padding:14px;border-radius:14px;font-weight:bold}.ok{color:#076448;background:#e8f8f1}.erro{color:#922138;background:#fff0f3}code{word-break:break-all}
    </style>
</head>
<body>
<main>
    <h1>Diagnóstico do Alerta Global</h1>

    <?php foreach ($teste as $titulo => $valor): ?>
        <div class="row">
            <strong><?= e($titulo) ?></strong>
            <code><?= e($valor) ?></code>
        </div>
    <?php endforeach; ?>

    <div class="status <?= $gravacao === 'SUCESSO' ? 'ok' : 'erro' ?>">
        Teste de gravação: <?= e($gravacao) ?>
        <?php if ($erro !== ''): ?>
            <br><?= e($erro) ?>
        <?php endif; ?>
    </div>
</main>
</body>
</html>
