<?php
// /xtreamui/api/chatbot_office_api.php
ob_start(); // Segura qualquer aviso do PHP para não quebrar o aplicativo
session_start();

// TRAVA DO FUSO HORÁRIO (HORÁRIO DE BRASÍLIA)
date_default_timezone_set('America/Sao_Paulo');

// ====== O SEGREDO ESTAVA AQUI ======
// Usando o EXATO formato ("data") do seu outro painel que funciona nesse App!
function finalizar_e_responder($mensagem = "") {
    while (ob_get_level() > 0) { ob_end_clean(); } 
    
    header('Content-Type: application/json; charset=UTF-8');
    $mensagem_utf8 = mb_convert_encoding($mensagem, 'UTF-8', 'auto');
    
    die(json_encode(["data" => [["message" => $mensagem_utf8]]], JSON_UNESCAPED_UNICODE));
}

try {
    require_once(__DIR__ . '/../config.php');
    $pdo = getConexaoAtiva();

    $duracao_padrao_horas = 4; // Tempo do teste gerado

    // 1. LÊ A CHAVE DA URL
    $key = $_GET['key'] ?? '';
    if (empty($key)) finalizar_e_responder("Identificador inválido.");

    // Busca quem é o dono dessa Key
    $stmt = $pdo->prepare("SELECT id, username FROM reg_users WHERE chatbot_token = ? LIMIT 1");
    $stmt->execute([$key]);
    $admin = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$admin) finalizar_e_responder("Identificador não encontrado.");

    // 2. CAPTURA A MENSAGEM DO APP (Usando a mesma lógica do seu código funcional)
    $data = json_decode(file_get_contents('php://input'), true);
    
    $userMessage = $data['senderMessage'] ?? '';
    
    // Fallback de segurança se vier por outro método
    if (empty(trim($userMessage))) {
        if (!empty($_GET['message'])) $userMessage = $_GET['message'];
        elseif (!empty($_POST['message'])) $userMessage = $_POST['message'];
    }

    if (empty(trim($userMessage))) die(); // Se não tem mensagem, encerra quieto

    // 3. BUSCA AS REGRAS DESSE USUÁRIO
    $stmtRules = $pdo->prepare("SELECT * FROM chatbot WHERE admin_id = ? AND status = 1");
    $stmtRules->execute([$admin['id']]);
    $chatbotRules = $stmtRules->fetchAll(PDO::FETCH_ASSOC);

    // 4. VERIFICA AS REGRAS E RESPONDE
    foreach ($chatbotRules as $rule) {
        $stmt_msg = $pdo->prepare("SELECT message FROM chatbot_messages WHERE chatbot_id = ?");
        $stmt_msg->execute([$rule['id']]);
        $messages = $stmt_msg->fetchAll(PDO::FETCH_COLUMN);

        foreach ($messages as $message) {
            $match = false;
            $msg_bd = trim($message);
            $msg_cliente = trim($userMessage);
            
            if ($msg_bd === '*') {
                $match = true;
            } elseif ($rule["rule_type"] === "equals" && strtolower($msg_bd) === strtolower($msg_cliente)) {
                $match = true;
            } elseif ($rule["rule_type"] === "contains" && stripos(strtolower($msg_cliente), strtolower($msg_bd)) !== false) {
                $match = true;
            }

            if ($match) {
                // AÇÃO: GERAR TESTE IPTV
                if ($rule["rule_action"] === 'test_iptv') {
                    
                    // Retirado o "_" do prefixo test, conforme solicitado
                    $usuario_teste = "test" . strtolower(substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 5));
                    $senha_teste = strtolower(substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 6));
                    $exp_date = time() + ($duracao_padrao_horas * 3600);
                    $created_at = time(); // Pegando a data de criação exata de agora (com o fuso do Brasil ativado)

                    // Grava no banco vinculado ao dono da regra, agora incluindo o created_at
                    $sql_insert = "INSERT INTO users (username, password, exp_date, enabled, admin_enabled, member_id, created_at) VALUES (?, ?, ?, 1, 0, ?, ?)";
                    $sucesso = $pdo->prepare($sql_insert)->execute([$usuario_teste, $senha_teste, $exp_date, $admin['id'], $created_at]);

                    if ($sucesso) {
                        $vencimento = date('d/m/Y H:i', $exp_date);
                        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? "https://" : "http://");
                        
                        // Força o domínio raiz sem nenhuma pasta (remove o /xtreamui)
                        $dominio_servidor = $protocol . $_SERVER['HTTP_HOST'];
                        
                        // GERANDO OS LINKS SOLICITADOS
                        $link_m3u = "{$dominio_servidor}/get.php?username={$usuario_teste}&password={$senha_teste}&type=m3u_plus&output=ts";
                        $link_m3u8 = "{$dominio_servidor}/get.php?username={$usuario_teste}&password={$senha_teste}&type=m3u_plus&output=m3u8";
                        $link_ssiptv = "{$dominio_servidor}/ss-ts/{$usuario_teste}/{$senha_teste}";

                        // CONSTRUINDO A MENSAGEM FINAL MAIS BONITA
                        $response_message = "✅ *SEU TESTE FOI GERADO COM SUCESSO!* \n\n";
                        $response_message .= "📱 *DADOS DE ACESSO:*\n";
                        $response_message .= "👤 *Usuário:* {$usuario_teste}\n";
                        $response_message .= "🔑 *Senha:* {$senha_teste}\n";
                        $response_message .= "⏳ *Vencimento:* {$vencimento}\n\n";
                        $response_message .= "📺 *SUAS LISTAS:*\n\n";
                        $response_message .= "🔗 *Lista M3U (Padrão/TS):* \n{$link_m3u}\n\n";
                        $response_message .= "🔗 *Lista M3U8 (Smart TVs):* \n{$link_m3u8}\n\n";
                        $response_message .= "🔗 *Lista SSIPTV (Encurtada):* \n{$link_ssiptv}\n\n";
                        $response_message .= "🤝 *Obrigado pela preferência! Qualquer dúvida é só chamar.*";
                    } else {
                        $response_message = "❌ Desculpe, ocorreu um erro interno e não foi possível gerar o teste.";
                    }
                    
                    $pdo->prepare("UPDATE chatbot SET runs = runs + 1 WHERE id = ?")->execute([$rule['id']]);
                    finalizar_e_responder($response_message);

                } else {
                    // AÇÃO: ENVIAR TEXTO FIXO
                    $pdo->prepare("UPDATE chatbot SET runs = runs + 1 WHERE id = ?")->execute([$rule['id']]);
                    finalizar_e_responder($rule["response"]);
                }
            }
        }
    }

} catch (Throwable $e) {
    finalizar_e_responder("Ocorreu um erro no servidor: " . $e->getMessage());
}
?>
