/** * Broadcaster de eventos en tiempo real via Socket.io. * * Actua como un wrapper singleton sobre la instancia de Socket.io. * Responsabilidades: * - Recibir la instancia de io en el arranque (attachBroadcaster). * - Emitir eventos tipados a todos los clientes conectados: * * market_update → cambio de precio/volumen de un mercado. * * ai_signal → nueva senal generada por el pipeline de IA. * * price_alert → alerta de umbral de precio o cambio de senal. * * Los controladores y servicios importan estas funciones para notificar * sin acoplarse directamente a Socket.io. */ let _io = null; export function attachBroadcaster(io) { _io = io; } export function emitMarketUpdate(payload) { _io?.emit('market_update', payload); } export function emitAiSignal(payload) { _io?.emit('ai_signal', payload); } export function emitPriceAlert(payload) { _io?.emit('price_alert', payload); }