<?php
session_start();
date_default_timezone_set('America/Sao_Paulo');

require_once 'config.php'; 
$pdo = getConexaoAtiva(); // Banco Principal
$pdo_int = getConexaoInterna(); // Banco Local

$pdo->exec("SET NAMES utf8mb4");
$pdo_int->exec("SET NAMES utf8mb4");

// REMOVIDO A TRAVA DE ADMIN PARA PERMITIR REVENDEDORES
if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit; }

$user_id_logado = $_SESSION['user_id']; 
$role = $_SESSION['user_role'] ?? 'reseller';
$nome_usuario = $_SESSION['username'] ?? 'Usuário'; 

// ====================================================================
// INTELIGÊNCIA ARTIFICIAL: DETECTA SE É XUI ONE OU XTREAM UI
// ====================================================================
$modo_ativo = 'interno';
try {
    $modo_ativo = $pdo_int->query("SELECT modo_ativo FROM configuracoes LIMIT 1")->fetchColumn() ?: 'interno';
} catch (Exception $e) {}

// A tabela de revendedores no XUI One chama-se `users`. No Xtream é `reg_users`.
$tabela_revendedores = ($modo_ativo === 'xui') ? '`users`' : '`reg_users`';

// Busca saldo SEMPRE no banco interno
try { $user_credits = $pdo_int->query("SELECT credits FROM reg_users WHERE id = " . intval($user_id_logado))->fetchColumn() ?: 0; } catch (Exception $e) { $user_credits = 0; }

// --- CRIAÇÃO DAS COLUNAS DA API NA TABELA DO REVENDEDOR SE NÃO EXISTIREM ---
try {
    $check_wa = $pdo->query("SHOW COLUMNS FROM $tabela_revendedores LIKE 'wa_api_url'");
    if (!$check_wa->fetch()) {
        $pdo->exec("ALTER TABLE $tabela_revendedores ADD COLUMN `wa_api_url` VARCHAR(255) DEFAULT '', ADD COLUMN `wa_api_key` VARCHAR(255) DEFAULT '', ADD COLUMN `wa_instancia` VARCHAR(255) DEFAULT '', ADD COLUMN `wa_status` TINYINT(1) DEFAULT 0");
    }
} catch (Exception $e) {}

// --- SALVAR CONFIGURAÇÕES NO PERFIL DO USUÁRIO LOGADO ---
$mensagem_aviso = "";
if (isset($_POST['action_save_api'])) {
    $url = trim($_POST['wa_api_url']);
    $key = trim($_POST['wa_api_key']);
    $inst = trim($_POST['wa_instancia']);
    $status = isset($_POST['wa_status']) ? 1 : 0;
    
    $pdo->prepare("UPDATE $tabela_revendedores SET wa_api_url = ?, wa_api_key = ?, wa_instancia = ?, wa_status = ? WHERE id = ?")->execute([$url, $key, $inst, $status, $user_id_logado]);
    $mensagem_aviso = "<div class='alert success'><i class='fas fa-check-circle'></i> Suas Configurações da API de WhatsApp foram salvas com sucesso!</div>";
}

// --- BUSCA DADOS ATUAIS ---
$nome_painel = 'TOP IPTV'; $logo_url = ''; $cor_primaria = '#007bff';

// 1. Busca Design Global no Banco Interno
try {
    $config_painel = $pdo_int->query("SELECT * FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
    if ($config_painel) {
        $nome_painel = !empty($config_painel['nome_painel']) ? $config_painel['nome_painel'] : $nome_painel;
        $logo_url = !empty($config_painel['logo_url']) ? $config_painel['logo_url'] : $logo_url;
        $cor_primaria = !empty($config_painel['cor_primaria']) ? $config_painel['cor_primaria'] : $cor_primaria;
    }
} catch (Exception $e) {}

// 2. Busca a API exclusiva do usuário logado
$wa_url = ''; $wa_key = ''; $wa_inst = ''; $wa_status = 0;
try {
    $api_user = $pdo->prepare("SELECT wa_api_url, wa_api_key, wa_instancia, wa_status FROM $tabela_revendedores WHERE id = ?");
    $api_user->execute([$user_id_logado]);
    $dados_api = $api_user->fetch(PDO::FETCH_ASSOC);
    if ($dados_api) {
        $wa_url = $dados_api['wa_api_url'] ?? '';
        $wa_key = $dados_api['wa_api_key'] ?? '';
        $wa_inst = $dados_api['wa_instancia'] ?? '';
        $wa_status = (int)($dados_api['wa_status'] ?? 0);
    }
} catch (Exception $e) {}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <link rel="stylesheet" href="tema.css">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Minha API WhatsApp - <?php echo htmlspecialchars($nome_painel); ?></title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root { --bg-dark: #121519; --bg-sidebar: #1e2227; --bg-card: #272c33; --text-main: #d1d5da; --text-muted: #8a94a1; --accent: <?php echo $cor_primaria; ?>; --border-color: #3a4149; --success: #28a745; --danger: #dc3545; --info: #17a2b8;}
        body { margin: 0; font-family: 'Segoe UI', sans-serif; background-color: var(--bg-dark); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; }
        
        /* CSS OBRIGATÓRIO PARA A LOGO E MENU (Evita o bug da logo gigante) */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; z-index: 1001; transition: 0.3s; flex-shrink:0; }
        .sidebar-header { padding: 25px 20px; text-align: center; font-size: 22px; font-weight: bold; color: white; border-bottom: 1px solid var(--border-color); }
        .sidebar-logo { max-width: 180px; max-height: 55px; object-fit: contain; }
        .user-info { padding: 20px; text-align: center; border-bottom: 1px solid var(--border-color); }
        .user-info .badge { background: rgba(0, 123, 255, 0.2); color: var(--accent); padding: 4px 10px; border-radius: 4px; font-size: 11px; text-transform: uppercase; font-weight: bold; margin-top: 5px; display: inline-block; }
        .credits-badge { display: block; margin-top: 10px; color: var(--success); font-weight: bold; font-size: 13px; }
        .menu-list { list-style: none; padding: 0; margin: 0; overflow-y: auto; flex: 1; }
        .menu-item { padding: 14px 20px; color: var(--text-main); text-decoration: none; display: flex; align-items: center; transition: 0.2s; border-left: 3px solid transparent; font-size: 15px; cursor: pointer; }
        .menu-item i:first-child { margin-right: 12px; width: 20px; text-align: center; color: var(--text-muted); }
        .menu-item:hover, .menu-item.active { background-color: #2c3138; color: white; border-left-color: var(--accent); }
        .menu-item.active i:first-child { color: var(--accent); }
        .submenu { display: none; background: #16191d; list-style: none; padding: 0; margin: 0; }
        .submenu .menu-item { padding-left: 52px; font-size: 13px; border-left: none; }
        .arrow-icon { margin-left: auto; transition: 0.3s; font-size: 11px; }
        .rotate { transform: rotate(180deg); }
        .menu-category { padding: 20px 20px 8px; font-size: 10px; text-transform: uppercase; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; }
        .logout-btn { padding: 15px; background-color: #dc3545; color: white; text-align: center; text-decoration: none; font-weight: bold; }
        
        .main-content { flex: 1; display: flex; flex-direction: column; overflow-y: auto; position: relative; width: 100vw; }
        .topbar { display: flex; justify-content: space-between; align-items: center; padding: 15px 30px; background-color: var(--bg-sidebar); border-bottom: 1px solid var(--border-color); }
        .content-area { padding: 30px; flex: 1; max-width: 900px; margin: 0 auto; width: 100%; box-sizing: border-box;}
        
        .mode-badge { padding: 6px 15px; background: rgba(40, 167, 69, 0.15); color: var(--success); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid var(--success); white-space: nowrap; display: inline-block; }

        .card { background: var(--bg-card); border-radius: 12px; border: 1px solid var(--border-color); padding: 25px; margin-bottom: 25px; }
        .card h3 { margin-top: 0; color: white; border-bottom: 1px solid var(--border-color); padding-bottom: 15px; display: flex; align-items: center; gap: 10px;}
        .form-group { margin-bottom: 20px; }
        .form-group label { display: block; margin-bottom: 8px; font-size: 13px; color: var(--text-muted); font-weight: bold;}
        .form-group input { width: 100%; padding: 12px; background: #121519; border: 1px solid var(--border-color); color: white; border-radius: 8px; box-sizing: border-box; font-size: 14px; }
        .form-group input:focus { border-color: var(--accent); outline: none; }
        
        .switch { position: relative; display: inline-block; width: 50px; height: 26px; }
        .switch input { opacity: 0; width: 0; height: 0; }
        .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #121519; transition: .4s; border-radius: 34px; border: 1px solid var(--border-color); }
        .slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: var(--text-muted); transition: .4s; border-radius: 50%; }
        input:checked + .slider { background-color: rgba(40, 167, 69, 0.2); border-color: var(--success); }
        input:checked + .slider:before { transform: translateX(24px); background-color: var(--success); }

        .btn-save { background: var(--accent); color: white; border: none; padding: 15px; border-radius: 8px; cursor: pointer; font-weight: bold; width: 100%; font-size: 15px; transition: 0.2s; display: flex; justify-content: center; gap: 8px;}
        .btn-save:hover { filter: brightness(1.1); box-shadow: 0 4px 15px rgba(0,0,0,0.2); }
        .alert { padding: 15px; border-radius: 8px; margin-bottom: 20px; font-weight: bold; font-size: 14px; }
        .alert.success { background: rgba(40, 167, 69, 0.1); color: var(--success); border: 1px solid var(--success); }

        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; }
        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 24px; cursor: pointer; }
        
        @media (max-width: 768px) { 
            .sidebar { position: fixed; left: -260px; height: 100%; box-shadow: 10px 0 20px rgba(0,0,0,0.5);} 
            .sidebar.active { left: 0; } 
            .menu-toggle { display: block; margin-right: 15px; } 
            .sidebar-overlay.active { display: block; } 
            .topbar { padding: 15px 20px; justify-content: flex-start; } 
            .topbar h2 { display: none; }
            .topbar-right { margin-left: auto; }
            .content-area { padding: 15px; padding-bottom: 120px; } 
        }
    </style>
</head>
<body>

    <div class="sidebar-overlay" id="overlay" onclick="toggleMenu()"></div>
    
    <?php include 'sidebar.php'; ?>
    
    <div class="main-content">
        <header class="topbar">
            <div style="display:flex; align-items:center;">
                <button class="menu-toggle" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>
                <h2 style="margin:0; font-size: 18px; color:white;">Integrações e APIs</h2>
            </div>
            <div class="topbar-right">
                <span class="mode-badge"><i class="fas fa-database"></i> MODO: <?php echo defined('MODO_SISTEMA') ? strtoupper(MODO_SISTEMA) : strtoupper($modo_ativo); ?></span>
            </div>
        </header>

        <div class="content-area">
            <?php echo $mensagem_aviso; ?>

            <div class="card" style="border-top: 4px solid #25d366;">
                <h3><i class="fab fa-whatsapp" style="color:#25d366; font-size: 24px;"></i> Disparo Invisível (Evolution API / Z-API)</h3>
                <p style="color: var(--text-muted); font-size: 13px; margin-bottom: 25px;">Sua API Pessoal! O painel enviará os testes e recibos de renovação automaticamente no fundo usando <b>o seu WhatsApp</b>.</p>
                
                <form method="POST">
                    <input type="hidden" name="action_save_api" value="1">
                    
                    <div style="display:flex; align-items:center; justify-content:space-between; background: rgba(37, 211, 102, 0.05); border: 1px dashed #25d366; padding: 15px; border-radius: 8px; margin-bottom: 20px;">
                        <div>
                            <strong style="color: white; display:block;">Ativar Envios Automáticos</strong>
                            <span style="font-size: 11px; color: var(--text-muted);">Habilitar disparo 100% invisível via API.</span>
                        </div>
                        <label class="switch">
                            <input type="checkbox" name="wa_status" <?php echo $wa_status == 1 ? 'checked' : ''; ?>>
                            <span class="slider"></span>
                        </label>
                    </div>

                    <div class="form-group">
                        <label>URL Base da API (Ex: http://ip-da-vps:8080)</label>
                        <input type="text" name="wa_api_url" value="<?php echo htmlspecialchars($wa_url); ?>" placeholder="http://123.456.789.00:8080">
                    </div>

                    <div class="form-group">
                        <label>Nome da Instância (Device)</label>
                        <input type="text" name="wa_instancia" value="<?php echo htmlspecialchars($wa_inst); ?>" placeholder="Ex: suporte_iptv">
                    </div>

                    <div class="form-group">
                        <label>Global API Key / Token</label>
                        <input type="password" name="wa_api_key" value="<?php echo htmlspecialchars($wa_key); ?>" placeholder="Cole seu token gigante aqui">
                    </div>

                    <button type="submit" class="btn-save"><i class="fas fa-save"></i> SALVAR INTEGRAÇÃO WHATSAPP</button>
                </form>
            </div>
            
        </div>
        <?php include 'rodape.php'; ?>
    </div>
    <script>
        function toggleMenu() { 
            document.getElementById('sidebar').classList.toggle('active'); 
            document.getElementById('overlay').classList.toggle('active'); 
        }

        function toggleSubmenu(id) {
            var sub = document.getElementById(id);
            var arrow = document.getElementById('arrow-' + id);
            if (sub.style.display === "block") {
                sub.style.display = "none";
                if(arrow) arrow.classList.remove('rotate');
            } else {
                sub.style.display = "block";
                if(arrow) arrow.classList.add('rotate');
            }
        }

        setTimeout(function() { 
            try { 
                var a = document.querySelectorAll('.alert'); 
                for(var i=0; i<a.length; i++) { a[i].style.display = 'none'; } 
            } catch(e) {} 
        }, 4000);
    </script>
    <script src="tema.js"></script>
</body>
</html>