<?php
// ARQUIVO: gestao_ponto/fix_teste.php
// OBJETIVO: Diagnóstico limpo e Correção Forçada (Bypassing Admin JS)

ini_set('display_errors', 1);
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');

// --- 1. CONEXÃO (COPIE A SENHA DO SEU API.PHP) ---
$host = 'localhost';
$dbname = 'vini_vfsystem';
$user = 'vini_vfuser';
$pass = '5@;NwUBzhhRc'; // <--- COLOQUE SUA SENHA AQUI IGUAL AO API.PHP

echo "<h1>DIAGNÓSTICO E CORREÇÃO MANUAL</h1>";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
    echo "<p style='color:green'>✅ Conexão com Banco OK!</p>";
} catch (PDOException $e) {
    die("<h2 style='color:red'>❌ Erro de Conexão: " . $e->getMessage() . "</h2>");
}

// --- 2. BUSCAR O USUÁRIO "TESTE" ---
echo "<h3>1. Buscando usuário 'Teste'...</h3>";
$stmt = $pdo->query("SELECT id, nome, nivel_acesso FROM usuarios WHERE nome LIKE '%Teste%'");
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);

if (count($users) == 0) {
    die("<p style='color:red'>❌ NENHUM usuário 'Teste' encontrado. Verifique o nome no banco.</p>");
}

foreach ($users as $u) {
    echo "<div style='border:1px solid #ccc; padding:10px; margin-bottom:10px;'>";
    echo "<strong>Nome:</strong> " . $u['nome'] . " | <strong>ID:</strong> " . $u['id'] . " | <strong>Nível Atual:</strong> " . $u['nivel_acesso'] . "<br>";
    
    // Força nivel horista se não for
    if ($u['nivel_acesso'] !== 'horista') {
        $pdo->query("UPDATE usuarios SET nivel_acesso = 'horista' WHERE id = " . $u['id']);
        echo "<span style='color:blue'>➡️ Nível corrigido para 'horista'.</span><br>";
    } else {
        echo "<span style='color:green'>✅ Nível já é 'horista'.</span><br>";
    }

    $uid = $u['id'];

    // --- 3. CORRIGIR DIAS ESPECÍFICOS (13/01 e 14/01) ---
    echo "<hr><strong>Analisando dias problemáticos:</strong><br>";

    // ARRAY DE CORREÇÃO: [DATA => MINUTOS REAIS]
    // 13/01 trabalhou 9h = 540 min
    // 14/01 trabalhou 8h = 480 min
    $correcoes = [
        '2026-01-13' => 540,
        '2026-01-14' => 480
    ];

    foreach ($correcoes as $data => $minutosCorretos) {
        $stmtDia = $pdo->prepare("SELECT id, saldo_minutos, meta_minutos FROM controle_ponto WHERE usuario_id = ? AND data_registro = ?");
        $stmtDia->execute([$uid, $data]);
        $dia = $stmtDia->fetch(PDO::FETCH_ASSOC);

        if ($dia) {
            echo "Dia $data: Banco diz Saldo " . $dia['saldo_minutos'] . " (Meta " . $dia['meta_minutos'] . ") ... ";
            
            // APLICA O UPDATE NA FORÇA BRUTA
            $upd = $pdo->prepare("UPDATE controle_ponto SET saldo_minutos = ?, meta_minutos = 0 WHERE id = ?");
            $upd->execute([$minutosCorretos, $dia['id']]);
            
            echo "<strong style='color:green'>CORRIGIDO PARA SALDO $minutosCorretos (Meta 0) ✅</strong><br>";
        } else {
            echo "Dia $data: <span style='color:orange'>Registro não existe no banco.</span><br>";
        }
    }
    echo "</div>";
}

echo "<h2>FIM DO PROCESSO. VOLTE AO ADMIN E DÊ F5.</h2>";
?>