<?php
$resultado = "";

// Caminho do diretório atual (onde este arquivo está)
$configDir = realpath(__DIR__);
$configFile = $configDir . "/db.php";

// Valores padrão
$host = "localhost";
$port = "5432";
$dbname = "orcamento";
$user = "postgres";
$password = "";

// Se já existir configuração salva, carrega
if (file_exists($configFile)) {
    include($configFile);
}

// Quando o formulário for enviado
if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $host = $_POST['host'];
    $port = $_POST['port'];
    $dbname = $_POST['dbname'];
    $user = $_POST['user'];
    $password = $_POST['password'];

    // Testar conexão
    if (isset($_POST['testar'])) {
        try {
            $pdo = new PDO("pgsql:host=$host;port=$port;dbname=$dbname", $user, $password);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $stmt = $pdo->query("SELECT NOW()");
            $data = $stmt->fetch(PDO::FETCH_ASSOC);
            $resultado = "<div class='alert alert-success mt-3'>
                ✅ Conexão bem-sucedida! Servidor respondeu em: <b>{$data['now']}</b>
            </div>";
        } catch (PDOException $e) {
            $resultado = "<div class='alert alert-danger mt-3'>
                ❌ Erro na conexão: " . htmlspecialchars($e->getMessage()) . "
            </div>";
        }
    }

    // Salvar configuração
    if (isset($_POST['salvar'])) {
        try {
            $configContent = "<?php\n";
            $configContent .= "// ============================================================\n";
            $configContent .= "// CONFIGURAÇÃO DE TIMEZONE BRASIL\n";
            $configContent .= "// ============================================================\n";
            $configContent .= "// Define timezone do PHP para o Brasil (Brasília)\n";
            $configContent .= "date_default_timezone_set('America/Sao_Paulo');\n\n";
            $configContent .= "\$host = \"$host\";\n";
            $configContent .= "\$port = \"$port\";\n";
            $configContent .= "\$dbname = \"$dbname\";\n";
            $configContent .= "\$user = \"$user\";\n";
            $configContent .= "\$password = \"$password\";\n\n";
            $configContent .= "try {\n";
            $configContent .= "    \$pdo = new PDO(\"pgsql:host=\$host;port=\$port;dbname=\$dbname\", \$user, \$password);\n";
            $configContent .= "    \$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n";
            $configContent .= "    \$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);\n";
            $configContent .= "    \$pdo->setAttribute(PDO::ATTR_PERSISTENT, true);\n\n";
            $configContent .= "    // ============================================================\n";
            $configContent .= "    // CONFIGURAR TIMEZONE DO POSTGRESQL PARA BRASIL\n";
            $configContent .= "    // ============================================================\n";
            $configContent .= "    // Define timezone da sessão PostgreSQL para São Paulo\n";
            $configContent .= "    \$pdo->exec(\"SET TIMEZONE = 'America/Sao_Paulo'\");\n";
            $configContent .= "} catch (PDOException \$e) {\n";
            $configContent .= "    die('Erro na conexão: ' . \$e->getMessage());\n";
            $configContent .= "}\n";

            file_put_contents($configFile, $configContent);

            $resultado = "<div class='alert alert-primary mt-3'>
                💾 Configuração salva com sucesso em:<br><b>$configFile</b><br>
                <a href='../../public/index.php' class='btn btn-sm btn-dark mt-3'>Ir para o Sistema</a>
            </div>";

        } catch (Exception $e) {
            $resultado = "<div class='alert alert-danger mt-3'>
                ❌ Falha ao salvar: " . htmlspecialchars($e->getMessage()) . "
            </div>";
        }
    }
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Configuração do Banco de Dados</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
</head>
<body class="bg-light">
<div class="container mt-5">
    <div class="card shadow-sm border-0">
        <div class="card-header bg-dark text-white">
            <h5 class="mb-0"><i class="bi bi-database me-2"></i>Configuração do Banco de Dados</h5>
        </div>
        <div class="card-body">
            <form method="POST">
                <div class="row mb-3">
                    <div class="col-md-6">
                        <label class="form-label">Host</label>
                        <input type="text" name="host" class="form-control" value="<?= htmlspecialchars($host) ?>" required>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Porta</label>
                        <input type="text" name="port" class="form-control" value="<?= htmlspecialchars($port) ?>" required>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">Banco</label>
                        <input type="text" name="dbname" class="form-control" value="<?= htmlspecialchars($dbname) ?>" required>
                    </div>
                </div>

                <div class="row mb-4">
                    <div class="col-md-6">
                        <label class="form-label">Usuário</label>
                        <input type="text" name="user" class="form-control" value="<?= htmlspecialchars($user) ?>" required>
                    </div>
                    <div class="col-md-6">
                        <label class="form-label">Senha</label>
                        <input type="password" name="password" class="form-control" value="<?= htmlspecialchars($password) ?>">
                    </div>
                </div>

                <div class="d-flex gap-2">
                    <button type="submit" name="testar" class="btn btn-success">
                        <i class="bi bi-plug"></i> Testar Conexão
                    </button>
                    <button type="submit" name="salvar" class="btn btn-primary">
                        <i class="bi bi-save"></i> Salvar Configuração
                    </button>
                </div>
            </form>
            <?= $resultado ?>
        </div>
    </div>
</div>
</body>
</html>
