<?php
// /api/chatbot_office_api.php
header('Content-Type: application/json; charset=UTF-8');
ini_set('display_errors', 0);
error_reporting(E_ALL);

try {
    // Carregamentos
    $root = realpath(__DIR__ . '/../');
    if (file_exists($root . '/includes/db.php')) require_once($root . '/includes/db.php');
    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');

    // Configurações
    $plano_teste_id = 1; 
    $duracao_horas = 3;
    $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https" : "http";
    $dominio_servidor = $protocol . "://" . $_SERVER['HTTP_HOST'];

    // Entrada
    $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; }

    global $pdo; 
    
    // === LÓGICA DE AUTENTICAÇÃO DUPLA (ADMIN OU REVENDA) ===
    $dono_id = 0;

    // 1. Tenta achar na tabela ADM
    $stmt = $pdo->prepare("SELECT id FROM adm WHERE chatbot_token = ? LIMIT 1");
    $stmt->execute([$key]);
    $admin = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($admin) {
        $dono_id = $admin['id'];
    } else {
        // 2. Se não achou, tenta na tabela REVENDEDORES
        $stmt2 = $pdo->prepare("SELECT id FROM revendedores WHERE chatbot_token = ? LIMIT 1");
        $stmt2->execute([$key]);
        $revenda = $stmt2->fetch(PDO::FETCH_ASSOC);
        
        if ($revenda) {
            $dono_id = $revenda['id'];
        }
    }

    if ($dono_id == 0) { 
        echo json_encode(["data"=>[["message"=>"Token inválido. Usuário não encontrado."]]]); 
        exit; 
    }

    // Define a variável global para o gerador de teste usar
    global $admin_id_api;
    $admin_id_api = $dono_id;

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

    // Busca as regras DESTE dono específico
    $regras = getAllChatbotRulesByAdmin($dono_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);
                    
                    $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"));
                        
                        $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$dominio_servidor/get.php?username=$user_t&password=$pass_t&type=m3u&output=ts\n\n";
                        $resposta_final .= "🎬 *LINK M3U8 (VOD):*\n$dominio_servidor/get.php?username=$user_t&password=$pass_t&type=m3u8&output=ts\n\n";
                        $resposta_final .= "🔗 *LINK SSIPTV:*\n$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'];
                    }
                } 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) {
    echo json_encode(["data" => [["message" => "Erro Interno."]]]);
}
?>
