<?php
// /api/chatbot_office_api.php
header('Content-Type: application/json; charset=UTF-8');

// LOG DE ERROS (Útil para saber se falhou)
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', __DIR__ . '/log_erros.txt');
error_reporting(E_ALL);

function logChat($msg) {
    file_put_contents(__DIR__ . '/log_erros.txt', date('[d-m-Y H:i:s] ') . $msg . PHP_EOL, FILE_APPEND);
}

try {
    // 1. CARREGAMENTO ROBUSTO DE ARQUIVOS
    $root = realpath(__DIR__ . '/../');
    
    if (file_exists($root . '/includes/db.php')) require_once($root . '/includes/db.php');
    else { logChat("Erro: db.php não encontrado."); die(); }

    if (file_exists($root . '/chatbot_integrado_funcoes.php')) require_once($root . '/chatbot_integrado_funcoes.php');
    if (file_exists($root . '/chatbot_gerar_teste_final2.php')) require_once($root . '/chatbot_gerar_teste_final2.php');

    // 2. CONFIGURAÇÕES
    $plano_teste_id = 1; 
    $duracao_horas = 3;
    $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https" : "http";
    $dominio_servidor = $protocol . "://" . $_SERVER['HTTP_HOST'];

    // 3. PROCESSAMENTO
    $input = file_get_contents('php://input');
    $data = json_decode($input, true);
    $key = $_GET['key'] ?? '';
    $userMessage = $data['senderMessage'] ?? ($_GET['message'] ?? '');

    if (empty($key)) { echo json_encode(["data"=>[["message"=>"Key missing"]]]); exit; }

    // Usa $pdo global
    global $pdo; 
    if(!isset($pdo)) { logChat("Erro: PDO não iniciado."); die(); }

    $stmt = $pdo->prepare("SELECT * FROM adm WHERE chatbot_token = ? LIMIT 1");
    $stmt->execute([$key]);
    $admin = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$admin) { echo json_encode(["data"=>[["message"=>"Admin not found"]]]); exit; }

    global $admin_id_api;
    $admin_id_api = $admin['id'];

    if (empty(trim($userMessage))) exit;

    $regras = getAllChatbotRulesByAdmin($admin['id']);
    $resposta_final = "";

    foreach ($regras as $regra) {
        if ($regra["status"] != 1) continue;

        foreach ($regra["messages"] as $gatilho) {
            $match = false;
            $msgUser = strtolower(trim($userMessage));
            $msgGatilho = strtolower(trim($gatilho));

            if ($regra["rule_type"] === "equals" && $msgGatilho === $msgUser) $match = true;
            if ($regra["rule_type"] === "contains" && stripos($msgUser, $msgGatilho) !== false) $match = true;

            if ($match) {
                // Atualiza contagem
                $pdo->prepare("UPDATE chatbot SET runs = runs + 1 WHERE id = ?")->execute([$regra['id']]);

                if ($regra["rule_action"] === 'test_iptv') {
                    $user_t = strtolower(substr(str_shuffle("abcdefghijklmnopqrstuvwxyz"), 0, 6)) . rand(10,99);
                    $pass_t = rand(1000,9999);
                    
                    logChat("Tentando criar teste para $user_t");
                    
                    $res = confirme_adicionar_testes("Chatbot Teste", $user_t, $pass_t, 1, $plano_teste_id, "Gerado via Chatbot", $duracao_horas);

                    if ($res['icon'] === 'success') {
                        $venc = date('d/m/Y H:i', strtotime("+$duracao_horas hours"));
                        
                        // MENSAGEM FINAL CONFIGURADA
                        $resposta_final = "✅ *DADOS DA SUA CONTA*\n\n";
                        $resposta_final .= "👤 *Usuário:* $user_t\n";
                        $resposta_final .= "🔑 *Senha:* $pass_t\n";
                        $resposta_final .= "📅 *Vencimento:* $venc\n\n";
                        
                        $resposta_final .= "-----------------------\n";
                        $resposta_final .= "🚀 *DADOS PARA APLICATIVOS (XC/PLUS):*\n";
                        $resposta_final .= "*URL:* $dominio_servidor\n";
                        $resposta_final .= "*User:* $user_t\n";
                        $resposta_final .= "*Pass:* $pass_t\n";
                        $resposta_final .= "-----------------------\n";
                        
                        $resposta_final .= "🌐 *Loja de Aplicativos:* https://lojaapp.xyz\n";
                        $resposta_final .= "-----------------------\n";
                        
                        $resposta_final .= "📺 *LINK M3U COMPLETO:*\n";
                        $resposta_final .= "$dominio_servidor/get.php?username=$user_t&password=$pass_t&type=m3u&output=ts\n\n";
                        
                        $resposta_final .= "🎬 *LINK M3U8 (VOD):*\n";
                        $resposta_final .= "$dominio_servidor/get.php?username=$user_t&password=$pass_t&type=m3u8&output=ts\n\n";
                        
                        $resposta_final .= "🔗 *LINK SSIPTV:*\n";
                        $resposta_final .= "$dominio_servidor/get.php?username=$user_t&password=$pass_t&type=m3u&output=mpegts\n\n\n";
                        
                        $resposta_final .= "Att: TOP IPTV";
                        
                    } else {
                        $resposta_final = "⚠️ *Erro ao criar teste.*\nMotivo: " . $res['msg'];
                        logChat("Falha ao criar: " . $res['msg']);
                    }
                } else {
                    $resposta_final = $regra["response"];
                }
                break 2;
            }
        }
    }

    if (!empty($resposta_final)) {
        echo json_encode([
            "reply" => $resposta_final, 
            "data" => [["message" => $resposta_final]]
        ], JSON_UNESCAPED_UNICODE);
    } else {
        echo json_encode(["reply" => ""]); 
    }

} catch (Exception $e) {
    logChat("Exception: " . $e->getMessage());
    echo json_encode(["data" => [["message" => "Erro Interno."]]]);
}
?>
