<?php
require_once __DIR__ . '/includes/header.php';

/* =======================
   SECURITY - Solo master puede acceder
======================= */
if (!isset($_SESSION['role'], $_SESSION['name'])) {
    header("Location: index.php");
    exit;
}

$role_logada = $_SESSION['role'];

if ($role_logada !== 'master') {
    die('<div class="alert alert-danger">Acceso denegado - Solo el master puede acceder a esta función</div>');
}

/* =======================
   PROCESAR ACCIONES
======================= */
$mensaje = '';
$tipoMensaje = '';
$chatIdEncontrado = '';
$nombreCanal = '';
$botInfo = '';

// Función para enviar peticiones a Telegram (sin cURL)
function telegramRequest($botToken, $method, $data) {
    $url = "https://api.telegram.org/bot{$botToken}/{$method}";
    $postData = http_build_query($data);
    
    $options = [
        'http' => [
            'method' => 'POST',
            'header' => "Content-Type: application/x-www-form-urlencoded\r\n" .
                        "Content-Length: " . strlen($postData) . "\r\n",
            'content' => $postData,
            'timeout' => 30
        ],
        'ssl' => ['verify_peer' => false, 'verify_peer_name' => false]
    ];
    
    $context = stream_context_create($options);
    $result = @file_get_contents($url, false, $context);
    
    if ($result === false) {
        return ['ok' => false, 'error' => 'No se pudo conectar a Telegram'];
    }
    
    return json_decode($result, true);
}

// Opción 1: Probar bot (verificar que funciona)
if (isset($_POST['probar_bot']) && !empty($_POST['bot_token'])) {
    $botToken = trim($_POST['bot_token']);
    $resultado = telegramRequest($botToken, 'getMe', []);
    
    if ($resultado['ok'] ?? false) {
        $botNombre = $resultado['result']['first_name'] ?? 'Desconocido';
        $botUsername = $resultado['result']['username'] ?? 'Desconocido';
        $botInfo = "✅ Bot: $botNombre (@$botUsername)";
        $mensaje = "✅ Bot funcionando correctamente!";
        $tipoMensaje = 'success';
    } else {
        $error = $resultado['error'] ?? 'Token inválido';
        $mensaje = "❌ Error al conectar con el bot: $error";
        $tipoMensaje = 'danger';
    }
}

// Opción 2: Obtener Chat ID de actualizaciones recientes
if (isset($_POST['obtener_chatid']) && !empty($_POST['bot_token'])) {
    $botToken = trim($_POST['bot_token']);
    $resultado = telegramRequest($botToken, 'getUpdates', ['limit' => 10]);
    
    if ($resultado['ok'] ?? false) {
        $canales = [];
        foreach ($resultado['result'] as $update) {
            // Buscar en channel_post
            if (isset($update['channel_post']['chat'])) {
                $chat = $update['channel_post']['chat'];
                $canales[] = [
                    'id' => $chat['id'],
                    'title' => $chat['title'] ?? 'Sin título'
                ];
            }
            // Buscar en message (para canales)
            if (isset($update['message']['chat']) && $update['message']['chat']['type'] == 'channel') {
                $chat = $update['message']['chat'];
                $canales[] = [
                    'id' => $chat['id'],
                    'title' => $chat['title'] ?? 'Sin título'
                ];
            }
        }
        
        if (!empty($canales)) {
            // Si solo hay un canal, mostrarlo directamente
            if (count($canales) == 1) {
                $chatIdEncontrado = $canales[0]['id'];
                $nombreCanal = $canales[0]['title'];
                $mensaje = "✅ Canal encontrado!";
                $tipoMensaje = 'success';
            } else {
                // Múltiples canales
                $mensaje = "✅ Se encontraron " . count($canales) . " canales. Selecciona uno:";
                $tipoMensaje = 'success';
            }
        } else {
            $mensaje = "❌ No se encontraron canales. Publica un mensaje en tu canal primero.";
            $tipoMensaje = 'warning';
        }
    } else {
        $error = $resultado['description'] ?? 'Error desconocido';
        $mensaje = "❌ Error al obtener actualizaciones: $error";
        $tipoMensaje = 'danger';
    }
}
?>

<div class="col-md-8 mx-auto">
    <div class="card-body">
        
        <!-- Mensajes -->
        <?php if ($mensaje): ?>
            <div class="alert alert-<?= $tipoMensaje ?> alert-dismissible fade show">
                <?= $mensaje ?>
                <?php if ($botInfo): ?>
                    <br><small><?= $botInfo ?></small>
                <?php endif; ?>
                <button type="button" class="close" data-dismiss="alert">&times;</button>
            </div>
        <?php endif; ?>

        <!-- Tarjeta principal -->
        <div class="card text-white ctluser-main">
            <div class="card-header ctheading text-center">
                <h2><i class="fa fa-telegram"></i> Obtener Chat ID de Canal</h2>
                <small>Ingresa el token de tu bot y obtén el Chat ID del canal</small>
            </div>

            <div class="card-body">
                
                <!-- Formulario principal -->
                <div class="card bg-secondary mb-4">
                    <div class="card-header">
                        <h5><i class="fa fa-key"></i> Configuración del Bot</h5>
                    </div>
                    <div class="card-body">
                        <form method="post">
                            <div class="form-group">
                                <label><i class="fa fa-bot"></i> Bot Token</label>
                                <input type="text" 
                                       name="bot_token" 
                                       class="form-control" 
                                       placeholder="Ej: 1234567890:ABCdefGHIjklmNOPqrstUVwxyz"
                                       required>
                                <small class="text-muted">
                                    Obtén tu token en <a href="https://t.me/BotFather" target="_blank">@BotFather</a>
                                </small>
                            </div>
                            
                            <div class="row">
                                <div class="col-md-6">
                                    <button type="submit" name="probar_bot" class="btn btn-info btn-block">
                                        <i class="fa fa-check-circle"></i> Probar Bot
                                    </button>
                                </div>
                                <div class="col-md-6">
                                    <button type="submit" name="obtener_chatid" class="btn btn-primary btn-block">
                                        <i class="fa fa-search"></i> Obtener Chat ID
                                    </button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>

                <!-- Mostrar resultado individual -->
                <?php if ($chatIdEncontrado): ?>
                    <div class="chat-id-box" style="background: #0f0f1a; border: 2px solid #28a745; border-radius: 12px; padding: 15px; text-align: center; margin-top: 20px;">
                        <h5><i class="fa fa-check-circle text-success"></i> Chat ID Encontrado</h5>
                        <p><strong>Canal:</strong> <?= htmlspecialchars($nombreCanal) ?></p>
                        <p><strong>Chat ID:</strong></p>
                        <code style="font-size: 20px; display: inline-block; margin: 10px 0; background: #1e1e2e; padding: 8px 15px; border-radius: 8px; color: #28a745;">
                            <?= $chatIdEncontrado ?>
                        </code>
                        <br>
                        <button class="btn btn-success mt-2" onclick="copiarAlPortapapeles('<?= $chatIdEncontrado ?>')">
                            <i class="fa fa-copy"></i> Copiar Chat ID
                        </button>
                        <div class="alert alert-warning mt-3">
                            <i class="fa fa-exclamation-triangle"></i>
                            <strong>Importante:</strong> 
                            <?php if ($chatIdEncontrado > 0): ?>
                                ⚠️ Este parece ser un ID personal, no de canal.
                                <br>Para un canal, el ID debe ser NEGATIVO (ej: -1001234567890)
                            <?php else: ?>
                                ✅ Este es un ID de canal válido (número negativo)
                            <?php endif; ?>
                        </div>
                    </div>
                <?php endif; ?>

                <!-- Mostrar múltiples canales encontrados -->
                <?php if (isset($canales) && !empty($canales) && count($canales) > 1): ?>
                    <div class="mt-4">
                        <h5><i class="fa fa-list"></i> Canales encontrados:</h5>
                        <div class="table-responsive">
                            <table class="table table-dark table-hover">
                                <thead>
                                    <tr>
                                        <th>#</th>
                                        <th>Nombre del Canal</th>
                                        <th>Chat ID</th>
                                        <th>Acción</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($canales as $index => $canal): ?>
                                    <tr>
                                        <td><?= $index + 1 ?></a>
                                        <td><?= htmlspecialchars($canal['title']) ?></a>
                                        <td><code><?= $canal['id'] ?></code></a>
                                        <td>
                                            <button class="btn btn-sm btn-success" onclick="copiarAlPortapapeles('<?= $canal['id'] ?>')">
                                                <i class="fa fa-copy"></i> Copiar
                                            </button>
                                         </a>
                                    </a>
                                    <?php endforeach; ?>
                                </tbody>
                            </a>
                        </div>
                    </div>
                <?php endif; ?>

                <hr>

                <!-- Guía rápida -->
                <div class="alert alert-secondary">
                    <h6><i class="fa fa-question-circle"></i> ¿Cómo obtener el Chat ID?</h6>
                    <ol class="mb-0">
                        <li><strong>Crea un bot</strong> en Telegram con <a href="https://t.me/BotFather" target="_blank">@BotFather</a></li>
                        <li><strong>Crea un canal</strong> en Telegram</li>
                        <li><strong>Agrega el bot como administrador</strong> al canal (permiso: "Publicar mensajes")</li>
                        <li><strong>Publica un mensaje</strong> en el canal</li>
                        <li><strong>Ingresa el token</strong> del bot en este formulario</li>
                        <li>Haz clic en <strong>"Obtener Chat ID"</strong></li>
                        <li>Copia el Chat ID (número negativo como <code>-1001234567890</code>)</li>
                    </ol>
                </div>

                <!-- Botón para volver -->
                <div class="text-center mt-3">
                    <a href="backup.php" class="btn btn-secondary">
                        <i class="fa fa-arrow-left"></i> Volver a Gestión de Backups
                    </a>
                </div>

            </div>
        </div>
    </div>
</div>

<script>
function copiarAlPortapapeles(texto) {
    const textarea = document.createElement('textarea');
    textarea.value = texto;
    document.body.appendChild(textarea);
    textarea.select();
    document.execCommand('copy');
    document.body.removeChild(textarea);
    alert('Chat ID copiado: ' + texto);
}
</script>

<?php require_once __DIR__ . '/includes/footer.php'; ?>