<?php
/**
 * Debug: Ver qué hay en el mensaje programado ID 7
 */

require_once __DIR__ . '/config/config.php';

header('Content-Type: text/plain; charset=utf-8');

echo "=== DEBUG MENSAJE PROGRAMADO ID 7 ===\n\n";

try {
    $db = Database::getInstance();
    
    $msg = $db->fetch(
        "SELECT sm.*, u.phone_number, u.name as user_name
         FROM scheduled_messages sm
         LEFT JOIN users u ON sm.user_id = u.id
         WHERE sm.id = 7"
    );
    
    if (!$msg) {
        echo "❌ Mensaje ID 7 no encontrado\n";
        exit;
    }
    
    echo "📋 DATOS BÁSICOS:\n";
    echo "ID: {$msg['id']}\n";
    echo "Usuario: {$msg['user_name']} ({$msg['phone_number']})\n";
    echo "Estado: {$msg['status']}\n";
    echo "Tipo: {$msg['message_type']}\n";
    echo "Programado para: {$msg['scheduled_date']} {$msg['scheduled_time']}\n\n";
    
    if ($msg['message_type'] === 'template') {
        echo "📝 PLANTILLA:\n";
        echo "Nombre: {$msg['template_name']}\n";
        echo "Idioma: {$msg['template_language']}\n";
        echo "Template ID: {$msg['template_id']}\n\n";
        
        echo "📊 PARÁMETROS RAW (string guardado en BD):\n";
        echo $msg['template_parameters'] . "\n\n";
        
        echo "🔍 PARÁMETROS DECODIFICADOS:\n";
        $params = json_decode($msg['template_parameters'], true);
        
        if (is_array($params)) {
            echo "Tipo: array\n";
            echo "Cantidad: " . count($params) . "\n";
            echo "Formato: ";
            
            $isAssociative = false;
            foreach ($params as $k => $v) {
                if (!is_int($k)) {
                    $isAssociative = true;
                    break;
                }
            }
            
            echo ($isAssociative ? "ASOCIATIVO (con nombres)" : "INDEXADO (numérico)") . "\n\n";
            
            echo "Valores:\n";
            foreach ($params as $k => $v) {
                echo "  [$k] => '$v'\n";
            }
        } else {
            echo "⚠️ No es un array válido\n";
        }
        
        echo "\n\n📤 CÓMO SE ENVIARÁ A WHATSAPP:\n";
        
        // Simular lo que hace WhatsAppService
        $whatsappService = new WhatsAppService();
        
        try {
            // Hacer dry run para ver el payload
            $dryPayload = $whatsappService->sendTemplateMessage(
                $msg['phone_number'],
                $msg['template_name'],
                $msg['template_language'] ?? 'es',
                $params,
                [],
                null,
                null,
                true  // dryRun = true
            );
            
            echo json_encode($dryPayload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
            
        } catch (Exception $e) {
            echo "❌ Error generando payload: " . $e->getMessage() . "\n";
        }
        
    } else {
        echo "📝 CONTENIDO:\n";
        echo $msg['message_content'] . "\n";
    }
    
    if (!empty($msg['error_message'])) {
        echo "\n\n❌ ERROR REGISTRADO:\n";
        echo $msg['error_message'] . "\n";
    }
    
} catch (Exception $e) {
    echo "❌ Error: " . $e->getMessage() . "\n";
}
