<?php
require_once 'db_config.php';
session_start();

if (!isset($_SESSION['usuario_id'])) {
    header("Location: index.php");
    exit;
}

$usuario_id = $_SESSION['usuario_id'];
$mensagem = '';
$erro = '';

// Processar formulário de configurações
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $acao = $_POST['acao'] ?? '';
    
    if ($acao === 'salvar_api') {
        $brapi_key = $_POST['brapi_key'] ?? '';
        
        // Atualizar tabela de configurações (criar se não existir)
        try {
            // Verificar se tabela existe, se não, criar
            $pdo->exec("CREATE TABLE IF NOT EXISTS configuracoes (
                id INT AUTO_INCREMENT PRIMARY KEY,
                usuario_id INT NOT NULL,
                chave VARCHAR(50) NOT NULL,
                valor VARCHAR(255) NOT NULL,
                UNIQUE KEY uk_user_chave (usuario_id, chave)
            )");
            
            $stmt = $pdo->prepare("INSERT INTO configuracoes (usuario_id, chave, valor) VALUES (?, 'brapi_key', ?) ON DUPLICATE KEY UPDATE valor = ?");
            $stmt->execute([$usuario_id, $brapi_key, $brapi_key]);
            $mensagem = 'Chave da API Brapi salva com sucesso!';
        } catch (PDOException $e) {
            $erro = 'Erro ao salvar chave da API: ' . $e->getMessage();
        }
    }
    
    if ($acao === 'alterar_senha') {
        $senha_atual = $_POST['senha_atual'] ?? '';
        $nova_senha = $_POST['nova_senha'] ?? '';
        $confirma_senha = $_POST['confirma_senha'] ?? '';
        
        if ($nova_senha !== $confirma_senha) {
            $erro = 'As novas senhas não coincidem.';
        } else {
            try {
                $stmt = $pdo->prepare("SELECT senha_hash FROM usuarios WHERE id = ?");
                $stmt->execute([$usuario_id]);
                $usuario = $stmt->fetch();
                
                // Verificar senha atual (texto plano ou bcrypt)
                $senha_valida = ($usuario['senha_hash'] === $senha_atual) || password_verify($senha_atual, $usuario['senha_hash']);
                
                if ($senha_valida) {
                    $novo_hash = password_hash($nova_senha, PASSWORD_BCRYPT);
                    $stmtUpdate = $pdo->prepare("UPDATE usuarios SET senha_hash = ? WHERE id = ?");
                    $stmtUpdate->execute([$novo_hash, $usuario_id]);
                    $mensagem = 'Senha alterada com sucesso!';
                } else {
                    $erro = 'Senha atual incorreta.';
                }
            } catch (PDOException $e) {
                $erro = 'Erro ao alterar senha: ' . $e->getMessage();
            }
        }
    }
    
    if ($acao === 'salvar_tema') {
        $tema_cor = $_POST['tema_cor'] ?? 'blue';
        $dark_mode = isset($_POST['dark_mode']) ? '1' : '0';
        
        try {
            $pdo->exec("CREATE TABLE IF NOT EXISTS configuracoes (
                id INT AUTO_INCREMENT PRIMARY KEY,
                usuario_id INT NOT NULL,
                chave VARCHAR(50) NOT NULL,
                valor VARCHAR(255) NOT NULL,
                UNIQUE KEY uk_user_chave (usuario_id, chave)
            )");
            
            $stmt = $pdo->prepare("INSERT INTO configuracoes (usuario_id, chave, valor) VALUES (?, 'tema_cor', ?) ON DUPLICATE KEY UPDATE valor = ?");
            $stmt->execute([$usuario_id, $tema_cor, $tema_cor]);
            
            $stmt = $pdo->prepare("INSERT INTO configuracoes (usuario_id, chave, valor) VALUES (?, 'dark_mode', ?) ON DUPLICATE KEY UPDATE valor = ?");
            $stmt->execute([$usuario_id, $dark_mode, $dark_mode]);
            
            $mensagem = 'Preferências de tema salvas com sucesso!';
        } catch (PDOException $e) {
            $erro = 'Erro ao salvar tema: ' . $e->getMessage();
        }
    }
}

// Buscar configurações atuais
$brapi_key_atual = '';
$tema_cor_atual = 'blue';
$dark_mode_atual = '0';

try {
    // Tenta buscar se a tabela existir
    $stmt = $pdo->prepare("SELECT chave, valor FROM configuracoes WHERE usuario_id = ?");
    $stmt->execute([$usuario_id]);
    $configs = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
    
    if (isset($configs['brapi_key'])) $brapi_key_atual = $configs['brapi_key'];
    if (isset($configs['tema_cor'])) $tema_cor_atual = $configs['tema_cor'];
    if (isset($configs['dark_mode'])) $dark_mode_atual = $configs['dark_mode'];
} catch (PDOException $e) {
    // Tabela não existe ainda, usar valores padrão
}
?>
<!DOCTYPE html>
<html lang="pt-BR" data-theme="<?php echo $dark_mode_atual === '1' ? 'dark' : 'light'; ?>">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Configurações - Carteira PRO</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="../css/global.css">
    <link rel="stylesheet" href="../css/layout.css">
</head>
<body class="theme-<?php echo htmlspecialchars($tema_cor_atual); ?>">
    <div class="app-container">
        <!-- Sidebar -->
        <aside class="sidebar animate-fade-in" id="sidebar">
            <div class="sidebar-header">
                <div class="sidebar-logo">V2</div>
                <h1 class="sidebar-title">Carteira PRO</h1>
            </div>
            <ul class="nav-menu">
                <li><a href="dashboard.php" class="nav-item">📊 Dashboard</a></li>
                <li><a href="ativos.php" class="nav-item">💼 Ativos</a></li>
                <li><a href="operacoes.php" class="nav-item">🔄 Operações</a></li>
                <li><a href="importar_backup.php" class="nav-item">📥 Importar Backup</a></li>
                <li><a href="configuracoes.php" class="nav-item active">⚙️ Configurações</a></li>
            </ul>
            <div class="p-4 mt-auto border-t border-gray-200">
                <a href="logout.php" class="nav-item text-red-500 hover:text-red-700">🚪 Sair</a>
            </div>
        </aside>

        <!-- Main Content -->
        <main class="main-content">
            <div class="topbar animate-slide-up">
                <div class="flex items-center gap-4">
                    <button id="menu-toggle" class="lg:hidden text-gray-500 hover:text-blue-500">☰</button>
                    <h2 class="text-xl font-bold text-gray-800 m-0">⚙️ Configurações</h2>
                </div>
                <div class="flex items-center gap-4">
                    <div class="flex items-center gap-2 font-medium text-gray-700">
                        <span>Olá, <?php echo htmlspecialchars($_SESSION['usuario_nome'] ?? 'Usuário'); ?></span>
                    </div>
                </div>
            </div>

            <div class="content-wrapper animate-slide-up delay-100 max-w-4xl mx-auto">
                
                <?php if ($mensagem): ?>
                    <div class="mb-6 p-4 bg-green-100 border-l-4 border-green-500 rounded-lg animate-slide-up">
                        <p class="text-green-800 font-medium">✓ <?php echo htmlspecialchars($mensagem); ?></p>
                    </div>
                <?php endif; ?>

                <?php if ($erro): ?>
                    <div class="mb-6 p-4 bg-red-100 border-l-4 border-red-500 rounded-lg animate-slide-up">
                        <p class="text-red-800 font-medium">❌ <?php echo htmlspecialchars($erro); ?></p>
                    </div>
                <?php endif; ?>

                <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
                    
                    <!-- Coluna 1 -->
                    <div class="space-y-8">
                        <!-- API Brapi -->
                        <div class="bg-white rounded-2xl shadow-md border border-gray-100 p-6">
                            <h3 class="text-lg font-bold text-gray-800 mb-4 flex items-center gap-2">
                                <span>🔌</span> Integração Brapi (Cotações)
                            </h3>
                            <p class="text-sm text-gray-600 mb-4">
                                A API da Brapi é necessária para buscar cotações em tempo real da B3.
                                <a href="https://brapi.dev/" target="_blank" class="text-blue-500 hover:underline">Obtenha sua chave gratuita aqui</a>.
                            </p>
                            <form method="POST" class="space-y-4">
                                <input type="hidden" name="acao" value="salvar_api">
                                <div class="form-group">
                                    <label class="form-label">Token / Chave da API</label>
                                    <input type="text" name="brapi_key" value="<?php echo htmlspecialchars($brapi_key_atual); ?>" 
                                           class="form-control font-mono text-sm" placeholder="Ex: aBcdEfGhIjKlMnOpQrStUv" required>
                                </div>
                                <button type="submit" class="btn btn-primary w-full">Salvar Chave API</button>
                            </form>
                        </div>

                        <!-- Personalização de Tema -->
                        <div class="bg-white rounded-2xl shadow-md border border-gray-100 p-6">
                            <h3 class="text-lg font-bold text-gray-800 mb-4 flex items-center gap-2">
                                <span>🎨</span> Personalização Visual
                            </h3>
                            <form method="POST" class="space-y-6">
                                <input type="hidden" name="acao" value="salvar_tema">
                                
                                <div>
                                    <label class="form-label mb-3 block">Cor Principal</label>
                                    <div class="flex gap-4">
                                        <label class="cursor-pointer">
                                            <input type="radio" name="tema_cor" value="blue" class="sr-only peer" <?php echo $tema_cor_atual === 'blue' ? 'checked' : ''; ?>>
                                            <div class="w-10 h-10 rounded-full bg-blue-500 ring-2 ring-offset-2 ring-transparent peer-checked:ring-blue-500 transition-all"></div>
                                        </label>
                                        <label class="cursor-pointer">
                                            <input type="radio" name="tema_cor" value="purple" class="sr-only peer" <?php echo $tema_cor_atual === 'purple' ? 'checked' : ''; ?>>
                                            <div class="w-10 h-10 rounded-full bg-purple-500 ring-2 ring-offset-2 ring-transparent peer-checked:ring-purple-500 transition-all"></div>
                                        </label>
                                        <label class="cursor-pointer">
                                            <input type="radio" name="tema_cor" value="emerald" class="sr-only peer" <?php echo $tema_cor_atual === 'emerald' ? 'checked' : ''; ?>>
                                            <div class="w-10 h-10 rounded-full bg-emerald-500 ring-2 ring-offset-2 ring-transparent peer-checked:ring-emerald-500 transition-all"></div>
                                        </label>
                                        <label class="cursor-pointer">
                                            <input type="radio" name="tema_cor" value="slate" class="sr-only peer" <?php echo $tema_cor_atual === 'slate' ? 'checked' : ''; ?>>
                                            <div class="w-10 h-10 rounded-full bg-slate-800 ring-2 ring-offset-2 ring-transparent peer-checked:ring-slate-800 transition-all"></div>
                                        </label>
                                    </div>
                                </div>

                                <div class="flex items-center gap-3">
                                    <input type="checkbox" id="dark_mode" name="dark_mode" class="w-5 h-5 text-blue-600 rounded" <?php echo $dark_mode_atual === '1' ? 'checked' : ''; ?>>
                                    <label for="dark_mode" class="font-medium text-gray-700 cursor-pointer">Ativar Modo Escuro (Dark Mode)</label>
                                </div>

                                <button type="submit" class="btn btn-primary w-full">Salvar Tema</button>
                            </form>
                        </div>
                    </div>

                    <!-- Coluna 2 -->
                    <div class="space-y-8">
                        <!-- Alterar Senha -->
                        <div class="bg-white rounded-2xl shadow-md border border-gray-100 p-6">
                            <h3 class="text-lg font-bold text-gray-800 mb-4 flex items-center gap-2">
                                <span>🔐</span> Segurança e Senha
                            </h3>
                            <p class="text-sm text-gray-600 mb-4">
                                Recomendamos usar senhas fortes com letras, números e símbolos.
                            </p>
                            <form method="POST" class="space-y-4">
                                <input type="hidden" name="acao" value="alterar_senha">
                                
                                <div class="form-group">
                                    <label class="form-label">Senha Atual</label>
                                    <input type="password" name="senha_atual" class="form-control" required>
                                </div>
                                
                                <div class="form-group">
                                    <label class="form-label">Nova Senha</label>
                                    <input type="password" name="nova_senha" class="form-control" required minlength="6">
                                </div>
                                
                                <div class="form-group">
                                    <label class="form-label">Confirmar Nova Senha</label>
                                    <input type="password" name="confirma_senha" class="form-control" required minlength="6">
                                </div>
                                
                                <button type="submit" class="btn btn-primary w-full bg-red-600 hover:bg-red-700 shadow-red-500/30">Atualizar Senha</button>
                            </form>
                        </div>

                        <!-- Info Sistema -->
                        <div class="bg-gray-50 rounded-2xl border border-gray-200 p-6">
                            <h3 class="text-sm font-bold text-gray-500 uppercase tracking-wider mb-4">Informações do Sistema</h3>
                            <ul class="space-y-2 text-sm text-gray-600">
                                <li class="flex justify-between"><span>Versão:</span> <span class="font-mono font-bold">2.1.0 PRO</span></li>
                                <li class="flex justify-between"><span>PHP:</span> <span class="font-mono"><?php echo phpversion(); ?></span></li>
                                <li class="flex justify-between"><span>Banco de Dados:</span> <span class="font-mono">MySQL/MariaDB</span></li>
                                <li class="flex justify-between"><span>Status Cotações:</span> 
                                    <span class="font-bold <?php echo empty($brapi_key_atual) ? 'text-red-500' : 'text-green-500'; ?>">
                                        <?php echo empty($brapi_key_atual) ? 'Desconectado' : 'Conectado'; ?>
                                    </span>
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
        </main>
    </div>
</body>
</html>
