<?php
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/src/Translate.php';

header('Content-Type: application/json');

// Solo para administradores
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
    echo json_encode(['success' => false, 'error' => 'Acceso denegado.']);
    exit;
}

$messageId = $_GET['message_id'] ?? null;

if (!$messageId) {
    echo json_encode(['success' => false, 'error' => 'ID de mensaje no proporcionado.']);
    exit;
}

try {
    // Obtener el mensaje original de la base de datos
    $stmt = $pdo->prepare("SELECT message_text, language_code FROM telegram_interactions WHERE id = ?");
    $stmt->execute([$messageId]);
    $messageData = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$messageData) {
        echo json_encode(['success' => false, 'error' => 'Mensaje no encontrado.']);
        exit;
    }

    $originalText = $messageData['message_text'];
    $sourceLang = $messageData['language_code'] ?? 'es'; // Asumir 'es' si no hay código de idioma
    $targetLang = 'es'; // Traducir siempre al español para el administrador

    // Si el idioma de origen ya es español, no es necesario traducir
    if ($sourceLang === $targetLang) {
        echo json_encode(['success' => true, 'translated_text' => $originalText, 'info' => 'Ya está en español.']);
        exit;
    }

    $translator = new Translate();
    $translatedText = $translator->translateHtml($originalText, $sourceLang, $targetLang);

    if ($translatedText) {
        echo json_encode(['success' => true, 'translated_text' => $translatedText]);
    } else {
        echo json_encode(['success' => false, 'error' => 'Error al traducir el mensaje.']);
    }

} catch (Exception $e) {
    error_log("Error en translate_message.php: " . $e->getMessage());
    echo json_encode(['success' => false, 'error' => 'Error interno del servidor.']);
}
