<?php
// ajax/config_check.php — Polling para detectar alterações nas configurações
header('Content-Type: application/json');
header('Cache-Control: no-cache, must-revalidate');
require_once __DIR__ . '/../functions.php';

// Garante tabela de cache
pdo()->exec("CREATE TABLE IF NOT EXISTS `configuracoes_cache` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `hash` varchar(32) NOT NULL,
  `atualizado_em` timestamp DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");

// Pega último hash enviado pelo cliente
$ultimo_hash = $_GET['hash'] ?? '';

// Calcula hash atual de todas as configurações
$todas = pdo()->query("SELECT chave, valor FROM configuracoes ORDER BY chave")->fetchAll(PDO::FETCH_KEY_PAIR);
$hash_atual = md5(serialize($todas));

// Se não houve mudança, retorna rápido
if ($hash_atual === $ultimo_hash) {
    echo json_encode(['changed' => false, 'hash' => $hash_atual]);
    exit;
}

// Registra o novo hash
pdo()->prepare("INSERT INTO configuracoes_cache (hash) VALUES (?)")->execute([$hash_atual]);

// Retorna todas as configurações atualizadas
echo json_encode([
    'changed' => true,
    'hash' => $hash_atual,
    'configs' => $todas,
    'timestamp' => time()
]);