<?php
// ARQUIVO: corrigir_banco.php
// OBJETIVO: Permitir números negativos na coluna saldo_minutos

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

// CONFIGURAÇÃO DO BANCO (Copie igual ao 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 do Banco de Dados</h1>";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "<p style='color:green'>✅ Conexão com o banco realizada.</p>";

    // 1. TENTA ALTERAR A COLUNA PARA ACEITAR NEGATIVOS (INT normal, sem UNSIGNED)
    // O comando MODIFY remove o atributo UNSIGNED se ele existir.
    $sql = "ALTER TABLE controle_ponto MODIFY COLUMN saldo_minutos INT NOT NULL DEFAULT 0";
    
    $pdo->exec($sql);
    
    echo "<div style='background:#d1fae5; padding:20px; border:1px solid green; border-radius:10px;'>
            <h2 style='color:green; margin:0;'>SUCESSO! BANCO CORRIGIDO.</h2>
            <p>A coluna <b>saldo_minutos</b> agora aceita números negativos (débitos).</p>
          </div>";

    // 2. TESTE DE VERIFICAÇÃO
    // Vamos tentar inserir um número negativo e depois apagar, só para testar.
    $pdo->exec("INSERT INTO controle_ponto (usuario_id, data_registro, saldo_minutos, meta_minutos, observacao) VALUES (0, '2000-01-01', -50, 0, 'TESTE_SISTEMA')");
    
    $stmt = $pdo->query("SELECT saldo_minutos FROM controle_ponto WHERE observacao = 'TESTE_SISTEMA'");
    $valor = $stmt->fetchColumn();
    
    if ((int)$valor === -50) {
        echo "<p style='color:blue; font-weight:bold;'>TESTE FINAL: O banco aceitou o valor -50 corretamente.</p>";
    } else {
        echo "<p style='color:red; font-weight:bold;'>ALERTA: O banco converteu -50 para $valor. A correção falhou.</p>";
    }

    // Limpa o teste
    $pdo->exec("DELETE FROM controle_ponto WHERE observacao = 'TESTE_SISTEMA'");

} catch (PDOException $e) {
    echo "<div style='background:#fee2e2; padding:20px; border:1px solid red; border-radius:10px;'>
            <h2 style='color:red; margin:0;'>ERRO NO PROCESSO</h2>
            <p>" . $e->getMessage() . "</p>
          </div>";
}
?>