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

require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/config/config.php';
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/src/TelegramSender.php';

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

$chatId = $_POST['chat_id'] ?? null;
$message = $_POST['message'] ?? null;

if (!$chatId || !$message) {
    http_response_code(400);
    echo json_encode(['success' => false, 'error' => 'Faltan parámetros: chat_id y message son requeridos.']);
    exit;
}

try {
    $telegram = new TelegramSender($_ENV['TELEGRAM_BOT_TOKEN'], $pdo);
    
    // Se envía el mensaje. La clase TelegramSender se encargará de:
    // 1. Formatear el texto si es necesario.
    // 2. Añadir el botón de traducción (true).
    // 3. Registrar la interacción en la base de datos.
    $result = $telegram->sendMessage(
        $chatId,
        htmlspecialchars($message), // Usamos htmlspecialchars para seguridad básica
        ['parse_mode' => 'HTML'],
        true, // Añadir botón de traducción
        'es'  // El mensaje del admin se asume que es en español
    );

    if ($result) {
        echo json_encode(['success' => true]);
    } else {
        // El error específico ya se loguea dentro de TelegramSender
        http_response_code(500);
        echo json_encode(['success' => false, 'error' => 'El servicio de Telegram no pudo enviar el mensaje.']);
    }

} catch (Exception $e) {
    custom_log("Error fatal en admin_send_message.php: " . $e->getMessage());
    http_response_code(500);
    echo json_encode(['success' => false, 'error' => 'Error interno del servidor al procesar la solicitud.']);
}
