<?php
/**
 * Teste Simples de Banco - Compatível com PHP 7.2+
 */

header('Content-Type: application/json; charset=utf-8');

try {
    // Usar as credenciais diretas do Database.php
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $info = [
        'status' => 'TESTANDO',
        'php_version' => phpversion(),
        'credenciais' => [
            'host' => $host,
            'database' => $dbname,
            'username' => $username,
            'password_definida' => !empty($password) ? 'SIM' : 'NÃO'
        ]
    ];
    
    // Testar conexão
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    $info['conexao'] = 'SUCESSO';
    
    // Verificar versão do MySQL
    $stmt = $pdo->query("SELECT VERSION() as version");
    $info['mysql_version'] = $stmt->fetch()['version'];
    
    // Verificar tabelas principais
    $tabelas = [];
    
    // Verificar tabela viagens
    try {
        $stmt = $pdo->query("SHOW TABLES LIKE 'viagens'");
        if ($stmt->rowCount() > 0) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM viagens");
            $total = $stmt->fetch()['total'];
            $tabelas['viagens'] = "EXISTE ($total registros)";
        } else {
            $tabelas['viagens'] = 'NÃO EXISTE';
        }
    } catch (Exception $e) {
        $tabelas['viagens'] = 'ERRO: ' . $e->getMessage();
    }
    
    // Verificar tabela usuarios
    try {
        $stmt = $pdo->query("SHOW TABLES LIKE 'usuarios'");
        if ($stmt->rowCount() > 0) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM usuarios");
            $total = $stmt->fetch()['total'];
            $tabelas['usuarios'] = "EXISTE ($total registros)";
        } else {
            $tabelas['usuarios'] = 'NÃO EXISTE';
        }
    } catch (Exception $e) {
        $tabelas['usuarios'] = 'ERRO: ' . $e->getMessage();
    }
    
    // Verificar tabela veiculos
    try {
        $stmt = $pdo->query("SHOW TABLES LIKE 'veiculos'");
        if ($stmt->rowCount() > 0) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM veiculos");
            $total = $stmt->fetch()['total'];
            $tabelas['veiculos'] = "EXISTE ($total registros)";
        } else {
            $tabelas['veiculos'] = 'NÃO EXISTE';
        }
    } catch (Exception $e) {
        $tabelas['veiculos'] = 'ERRO: ' . $e->getMessage();
    }
    
    // Verificar tabela motoristas
    try {
        $stmt = $pdo->query("SHOW TABLES LIKE 'motoristas'");
        if ($stmt->rowCount() > 0) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM motoristas");
            $total = $stmt->fetch()['total'];
            $tabelas['motoristas'] = "EXISTE ($total registros)";
        } else {
            $tabelas['motoristas'] = 'NÃO EXISTE';
        }
    } catch (Exception $e) {
        $tabelas['motoristas'] = 'ERRO: ' . $e->getMessage();
    }
    
    $info['tabelas'] = $tabelas;
    
    // Verificar se está pronto para o app
    $tabelas_obrigatorias = ['viagens', 'usuarios', 'veiculos', 'motoristas'];
    $todas_existem = true;
    
    foreach ($tabelas_obrigatorias as $tabela) {
        if (!isset($tabelas[$tabela]) || strpos($tabelas[$tabela], 'EXISTE') === false) {
            $todas_existem = false;
            break;
        }
    }
    
    if ($todas_existem) {
        $info['status_final'] = 'PRONTO PARA O APP';
        $info['mensagem'] = 'Todas as tabelas existem. O app pode enviar dados!';
    } else {
        $info['status_final'] = 'PRECISA CRIAR TABELAS';
        $info['mensagem'] = 'Execute o arquivo database/schema.sql no banco';
    }
    
    echo json_encode($info, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode([
        'status' => 'ERRO',
        'mensagem' => $e->getMessage(),
        'linha' => $e->getLine(),
        'arquivo' => $e->getFile()
    ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
}
?> 
