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

$pdo = getConexaoAtiva(); // Banco Principal
$pdo_int = getConexaoInterna(); // Banco Local (Onde o robô vai morar e salvar os emojis)

// FORÇA O CHARSET PARA ACEITAR EMOJIS SEM BUGAR
$pdo->exec("SET NAMES utf8mb4");
$pdo_int->exec("SET NAMES utf8mb4");

// --- PROTEÇÃO DE ADMINISTRADOR ---
if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'admin') {
    die("Acesso negado. Apenas administradores podem acessar esta página.");
}

$id_usuario = $_SESSION['user_id'];
$nome_usuario = $_SESSION['username'] ?? 'Admin';
$role = 'admin';

// ====================================================================
// 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) {}

// --- INÍCIO: BUSCA DE PERSONALIZAÇÃO DINÂMICA (BANCO INTERNO) ---
$nome_painel = 'TOP IPTV';
$logo_url = '';
$cor_primaria = '#007bff';

try {
    $tabela_existe = $pdo_int->query("SHOW TABLES LIKE 'painel_config'")->rowCount() > 0;
    if ($tabela_existe) {
        $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) { }

// Busca saldo no Banco Interno
try {
    $user_credits = $pdo_int->query("SELECT credits FROM reg_users WHERE id = " . intval($id_usuario))->fetchColumn() ?: 0;
} catch (Exception $e) { $user_credits = 0; }
// --- FIM: BUSCA DE PERSONALIZAÇÃO DINÂMICA ---


// =========================================================================
// BANCO DE DADOS: CRIAÇÃO DAS TABELAS DO ROBÔ NO BANCO INTERNO
// =========================================================================
try {
    // Tabela de Configurações (Com CHARSET utf8mb4 para suportar os Emojis)
    $pdo_int->exec("CREATE TABLE IF NOT EXISTS `robo_financeiro_config` (
        `id` int(11) PRIMARY KEY,
        `status` tinyint(1) DEFAULT 1,
        `msg_hoje` text,
        `msg_3d` text,
        `msg_7d` text
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");
    
    // Tabela de Logs (Relatório)
    $pdo_int->exec("CREATE TABLE IF NOT EXISTS `robo_financeiro_logs` (
        `id` int(11) AUTO_INCREMENT PRIMARY KEY,
        `cliente_id` int(11),
        `cliente_user` varchar(100),
        `tipo` varchar(20),
        `mensagem` text,
        `data_envio` timestamp DEFAULT CURRENT_TIMESTAMP
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");

    // Insere configuração padrão se não existir
    $check = $pdo_int->query("SELECT id FROM robo_financeiro_config WHERE id = 1")->rowCount();
    if ($check == 0) {
        $msg_padrao = "Olá #nome#! Seu acesso vence hoje. Não esqueça de renovar!";
        $pdo_int->prepare("INSERT INTO robo_financeiro_config (id, status, msg_hoje, msg_3d, msg_7d) VALUES (1, 1, ?, ?, ?)")
            ->execute([$msg_padrao, $msg_padrao, $msg_padrao]);
    }
} catch (Exception $e) {}

$mensagem_alerta = "";

// SALVAR CONFIGURAÇÕES NO BANCO INTERNO
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['action_save_robo'])) {
    $status = isset($_POST['robo_status']) ? 1 : 0;
    $msg_hoje = $_POST['msg_hoje'];
    $msg_3d = $_POST['msg_3d'];
    $msg_7d = $_POST['msg_7d'];

    $sql = "UPDATE robo_financeiro_config SET status = ?, msg_hoje = ?, msg_3d = ?, msg_7d = ? WHERE id = 1";
    $pdo_int->prepare($sql)->execute([$status, $msg_hoje, $msg_3d, $msg_7d]);
    $mensagem_alerta = "<div class='alert success'><i class='fas fa-check-circle'></i> Configurações do Robô salvas com sucesso!</div>";
}

// BUSCA DADOS ATUAIS NO BANCO INTERNO
$config = $pdo_int->query("SELECT * FROM robo_financeiro_config WHERE id = 1")->fetch(PDO::FETCH_ASSOC);
$logs = $pdo_int->query("SELECT * FROM robo_financeiro_logs ORDER BY id DESC LIMIT 10")->fetchAll(PDO::FETCH_ASSOC);

// Variáveis para o tutorial do Robô (Roda 1x por dia)
$caminho_cpanel = "/usr/local/bin/php -q /home/geandrober/public_html/robo_cobranca.php";
$caminho_vps = "0 9 * * * /usr/bin/php /var/www/html/robo_cobranca.php";

?>

<!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, maximum-scale=1.0, user-scalable=no">
    <title>Gerenciar Robô - <?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; --warning: #f39c12; }
        body { margin: 0; font-family: 'Segoe UI', sans-serif; background-color: var(--bg-dark); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; }
        
        /* MENU LATERAL PADRÃO */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); display: flex; flex-direction: column; transition: 0.3s; border-right: 1px solid var(--border-color); z-index: 1001; 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(255, 255, 255, 0.05); 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: 14px; 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; }

        /* CONTEÚDO PRINCIPAL E RESPONSIVIDADE */
        .main-content { flex: 1; display: flex; flex-direction: column; overflow-y: auto; width: 100%; position: relative; }
        .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); gap: 15px; }
        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 22px; cursor: pointer; padding: 5px; }
        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; }
        .content-area { padding: 25px; flex: 1; max-width: 900px; margin: 0 auto; width: 100%; box-sizing: border-box; }
        .mode-badge { padding: 6px 15px; background: rgba(0, 123, 255, 0.15); color: var(--accent); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid var(--accent); white-space: nowrap; }

        /* ESTILOS ESPECÍFICOS DO ROBÔ */
        .card { background: var(--bg-card); border-radius: 12px; border: 1px solid var(--border-color); padding: 25px; margin-bottom: 20px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
        .form-group { margin-bottom: 20px; }
        label { display: block; margin-bottom: 8px; font-weight: bold; color: white; font-size: 13px;}
        textarea { width: 100%; height: 80px; background: #121519; border: 1px solid var(--border-color); color: white; border-radius: 8px; padding: 12px; resize: none; font-size: 14px; box-sizing: border-box; font-family: inherit;}
        textarea:focus { border-color: var(--accent); outline: none; }
        .btn-salvar { background: var(--accent); color: white; border: none; padding: 15px 30px; border-radius: 8px; cursor: pointer; font-weight: bold; width: 100%; font-size: 15px; transition: 0.2s;}
        .btn-salvar:hover { filter: brightness(1.1); box-shadow: 0 4px 15px rgba(0,123,255,0.2); }
        
        .btn-tutorial { background: #8b5cf6; color: white; border: none; padding: 12px; border-radius: 8px; cursor: pointer; font-weight: bold; width: 100%; margin-top: 15px; font-size: 14px; transition: 0.2s; display: flex; justify-content: center; align-items: center; gap: 8px;}
        .btn-tutorial:hover { background: #7c3aed; }
        
        .alert { padding: 15px; background: rgba(40, 167, 69, 0.15); color: var(--success); border: 1px solid var(--success); border-radius: 8px; margin-bottom: 20px; font-weight: bold; display: flex; align-items: center; gap: 10px;}
        
        .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: #3a4149; transition: .3s; border-radius: 34px; }
        .slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 4px; bottom: 4px; background-color: white; transition: .3s; border-radius: 50%; }
        input:checked + .slider { background-color: var(--success); }
        input:checked + .slider:before { transform: translateX(24px); }

        .table-responsive { overflow-x: auto; width: 100%; }
        table { width: 100%; border-collapse: collapse; margin-top: 15px; font-size: 13px; min-width: 500px;}
        th, td { text-align: left; padding: 12px; border-bottom: 1px solid var(--border-color); }
        th { color: var(--text-muted); text-transform: uppercase; font-size: 11px; font-weight: bold;}
        td { color: var(--text-main); }
        .badge-tipo { background: var(--accent); padding: 4px 8px; border-radius: 4px; color: white; font-weight: bold; font-size: 10px; text-transform: uppercase; }

        /* MODAL TUTORIAL */
        .modal-overlay-tutorial { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.8); z-index: 2000; justify-content: center; align-items: center; backdrop-filter: blur(5px); }
        .modal-box { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 15px; padding: 30px; width: 90%; max-width: 650px; position: relative; box-shadow: 0 20px 40px rgba(0,0,0,0.5); }
        .modal-close { position: absolute; top: 15px; right: 20px; background: none; border: none; color: var(--text-muted); font-size: 24px; cursor: pointer; }
        .modal-close:hover { color: var(--danger); }
        .tutorial-content { text-align: left; color: var(--text-main); font-size: 14px; line-height: 1.6; max-height: 60vh; overflow-y: auto; padding-right: 10px; }
        .tutorial-content h4 { color: var(--accent); margin-top: 15px; margin-bottom: 10px; border-bottom: 1px solid var(--border-color); padding-bottom: 10px; font-size: 16px; display: flex; align-items: center; gap: 8px;}
        .tutorial-content ol { padding-left: 20px; margin: 0; }
        .tutorial-content li { margin-bottom: 12px; }
        .tutorial-content strong { color: white; }
        
        .copy-group { display: flex; gap: 8px; margin-top: 10px; margin-bottom: 20px;}
        .copy-group input { flex: 1; background: #121519; border: 1px solid var(--border-color); color: var(--text-main); padding: 10px; border-radius: 6px; font-size: 12px; outline: none; font-family: monospace;}
        .copy-group button { background: var(--accent); color: white; border: none; padding: 10px 15px; border-radius: 6px; cursor: pointer; font-weight: bold; transition: 0.2s; display: flex; align-items: center; gap: 5px; flex-shrink: 0;}
        .copy-group button:hover { filter: brightness(1.2); }

        @media (max-width: 768px) {
            .menu-toggle { display: block; margin-right: 10px;}
            .sidebar { position: fixed; left: -260px; height: 100%; box-shadow: 10px 0 20px rgba(0,0,0,0.5); }
            .sidebar.active { left: 0; }
            .sidebar-overlay.active { display: block; }
            .topbar { padding: 15px 20px; }
            .topbar h2 { font-size: 16px !important; margin-left: 10px; }
            .content-area { padding: 15px; }
            .copy-group { flex-direction: column; }
        }
    </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;"><i class="fas fa-robot" style="color:var(--accent);"></i> Robô de Cobrança Automática</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_alerta; ?>

            <form method="POST">
                <input type="hidden" name="action_save_robo" value="1">
                
                <div class="card">
                    <div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 15px;">
                        <div>
                            <h4 style="margin:0; color:white; font-size: 16px;">Status do Funcionamento</h4>
                            <p style="font-size: 12px; color: var(--text-muted); margin-top: 5px;">Se desligar, o robô não fará disparos mesmo que o Cron esteja rodando.</p>
                        </div>
                        <label class="switch">
                            <input type="checkbox" name="robo_status" <?php echo ($config['status'] == 1) ? 'checked' : ''; ?>>
                            <span class="slider"></span>
                        </label>
                    </div>
                </div>

                <div class="card">
                    <h4 style="margin-top:0; color: white; font-size: 16px; border-bottom: 1px solid var(--border-color); padding-bottom: 10px;"><i class="fas fa-comment-dots"></i> Modelos de Mensagem</h4>
                    <p style="font-size: 13px; color: var(--info); margin-bottom: 20px;"><i class="fas fa-info-circle"></i> <b>Dica:</b> Use a tag <b>#nome#</b> para o robô preencher o nome do cliente automaticamente e emojis à vontade.</p>
                    
                    <div class="form-group">
                        <label>Cobrança: Vence Hoje</label>
                        <textarea name="msg_hoje" placeholder="Ex: Olá #nome#, seu plano vence hoje!"><?php echo htmlspecialchars($config['msg_hoje']); ?></textarea>
                    </div>

                    <div class="form-group">
                        <label>Cobrança: 3 Dias Vencido</label>
                        <textarea name="msg_3d" placeholder="Ex: Olá #nome#, notamos que você não renovou..."><?php echo htmlspecialchars($config['msg_3d']); ?></textarea>
                    </div>

                    <div class="form-group">
                        <label>Promoção: 7 Dias Vencido</label>
                        <textarea name="msg_7d" placeholder="Ex: Volte #nome#! Temos uma oferta especial..."><?php echo htmlspecialchars($config['msg_7d']); ?></textarea>
                    </div>

                    <button type="submit" class="btn-salvar"><i class="fas fa-save"></i> SALVAR CONFIGURAÇÕES DO ROBÔ</button>
                    
                    <button type="button" class="btn-tutorial" onclick="abrirTutorialCron()"><i class="fas fa-terminal"></i> Como ligar o Robô (Tarefa Cron)?</button>
                </div>
            </form>

            <div class="card">
                <h4 style="margin-top:0; color: white; font-size: 16px; border-bottom: 1px solid var(--border-color); padding-bottom: 10px;"><i class="fas fa-history"></i> Últimos Envios (Relatório)</h4>
                <div class="table-responsive">
                    <table>
                        <thead>
                            <tr>
                                <th>Data/Hora</th>
                                <th>Cliente</th>
                                <th>Tipo</th>
                                <th>Status</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php if(empty($logs)): ?>
                                <tr><td colspan="4" style="text-align:center; color: var(--text-muted); padding:20px;">Nenhum envio registrado pelo robô ainda.</td></tr>
                            <?php else: foreach($logs as $l): ?>
                                <tr>
                                    <td><?php echo date('d/m/Y H:i', strtotime($l['data_envio'])); ?></td>
                                    <td><strong><?php echo htmlspecialchars($l['cliente_user']); ?></strong></td>
                                    <td><span class="badge-tipo"><?php echo htmlspecialchars($l['tipo']); ?></span></td>
                                    <td style="color: var(--success); font-weight: bold;"><i class="fas fa-check"></i> PROCESSADO</td>
                                </tr>
                            <?php endforeach; endif; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
        <?php include 'rodape.php'; ?>
    </div>

    <div class="modal-overlay-tutorial" id="modalTutorialCron">
        <div class="modal-box">
            <button class="modal-close" onclick="fecharTutorialCron()"><i class="fas fa-times"></i></button>
            <h3 style="margin-top: 0; color: white; border-bottom: 1px solid var(--border-color); padding-bottom: 15px; text-align: left;">
                <i class="fas fa-clock" style="color: #8b5cf6;"></i> Configurar Tarefa Cron (Cobrança)
            </h3>
            
            <div class="tutorial-content">
                <p style="color: var(--text-muted); font-size: 13px;">O Robô de Cobrança precisa ser programado para rodar <strong>1 vez por dia</strong> (geralmente de manhã) para varrer os vencimentos. Escolha a sua opção abaixo:</p>

                <h4><i class="fas fa-cogs"></i> Opção 1: Hospedagem (cPanel)</h4>
                <ol>
                    <li>Acesse o painel principal do seu <strong>cPanel</strong>.</li>
                    <li>Role até a seção "Avançado" e clique em <strong>Trabalhos Cron</strong> (Cron Jobs).</li>
                    <li>Em "Configurações Comuns", selecione: <strong>Uma vez por dia (0 0 * * *)</strong>.</li>
                    <li>Mude o campo "Hora" para <strong>9</strong> (para rodar às 09:00).</li>
                    <li>No campo "Comando", cole o código abaixo e salve:</li>
                </ol>
                <div class="copy-group">
                    <input type="text" id="cmd_cpanel" value="<?php echo $caminho_cpanel; ?>" readonly>
                    <button type="button" onclick="copiarComando('cmd_cpanel')"><i class="fas fa-copy"></i> Copiar</button>
                </div>

                <h4 style="margin-top: 25px;"><i class="fas fa-terminal"></i> Opção 2: VPS Linux (Terminal SSH)</h4>
                <ol>
                    <li>Acesse sua VPS via SSH (Putty, Termius, etc).</li>
                    <li>Digite o comando <code>crontab -e</code> e aperte Enter.</li>
                    <li>Vá até a última linha do arquivo, cole o código abaixo e salve:</li>
                </ol>
                <div class="copy-group">
                    <input type="text" id="cmd_vps" value="<?php echo $caminho_vps; ?>" readonly>
                    <button type="button" onclick="copiarComando('cmd_vps')"><i class="fas fa-copy"></i> Copiar</button>
                </div>
                
                <div style="background: rgba(243, 156, 18, 0.1); border-left: 4px solid var(--warning); padding: 10px 15px; margin-top: 20px; border-radius: 4px;">
                    <p style="margin: 0; font-size: 12px; color: var(--text-main);"><strong style="color:var(--warning);">Atenção:</strong> Certifique-se de que o caminho do arquivo <code>robo_cobranca.php</code> e a versão do PHP nos comandos acima estão corretos para a estrutura do seu servidor.</p>
                </div>
            </div>
        </div>
    </div>

    <script>
        function toggleMenu() { 
            document.getElementById('sidebar').classList.toggle('active'); 
            document.getElementById('overlay').classList.toggle('active'); 
        }
        
        function toggleSubmenu(id) {
            const sub = document.getElementById(id);
            const 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'); 
            }
        }

        function abrirTutorialCron() {
            document.getElementById('modalTutorialCron').style.display = 'flex';
        }

        function fecharTutorialCron() {
            document.getElementById('modalTutorialCron').style.display = 'none';
        }

        function copiarComando(idElemento) {
            var copyText = document.getElementById(idElemento);
            copyText.select();
            copyText.setSelectionRange(0, 99999);
            navigator.clipboard.writeText(copyText.value).then(() => {
                alert("Comando copiado com sucesso!");
            }).catch(err => {
                document.execCommand("copy");
                alert("Comando copiado com sucesso!");
            });
        }
        
        setTimeout(function() { 
            try { 
                var alerts = document.querySelectorAll('.alert'); 
                for(var i=0; i<alerts.length; i++) { alerts[i].style.opacity='0'; } 
                setTimeout(function(){ 
                    for(var j=0; j<alerts.length; j++) { alerts[j].style.display='none'; } 
                }, 500); 
            } catch(e) {} 
        }, 4000);
    </script>
    <script src="tema.js"></script>
</body>
</html>