UNPKG

whatsapp-crm-common

Version:

Componentes compartidos para servicios de WhatsApp CRM - Common utilities and types for WhatsApp CRM system

59 lines 2.3 kB
import { WhatsAppMessageQueue } from "../../infrastructure/message-queue/redis-queue"; import { WhatsAppEvent, IEventPublisher } from "../types/event-interfaces"; import { QueueName } from "../types/event-types"; /** * Publisher principal para eventos de WhatsApp */ export declare class EventPublisher implements IEventPublisher { private messageQueue; constructor(messageQueue: WhatsAppMessageQueue); /** * Publica un evento en la cola correspondiente */ publishEvent(event: WhatsAppEvent, queueName?: QueueName): Promise<void>; /** * Publica múltiples eventos en batch */ publishBatch(events: WhatsAppEvent[], queueName?: QueueName): Promise<void>; /** * Publica evento de mensajes nuevos recibidos */ publishMessageReceived(tenantId: string, agentId: number, messages: any[]): Promise<void>; /** * Publica evento de actualización de mensajes */ publishMessageUpdates(tenantId: string, agentId: number, updates: any[]): Promise<void>; /** * Publica evento de sincronización de historial */ publishHistorySync(tenantId: string, agentId: number, historyData: any, isPartial?: boolean): Promise<void>; /** * Publica evento de estado de conexión */ publishConnectionStatus(tenantId: string, agentId: number, connected: boolean, reason?: string, qrCode?: string): Promise<void>; /** * Publica evento de código QR generado */ publishQRCodeGenerated(tenantId: string, agentId: number, qrCode: string): Promise<void>; /** * Publica evento de notificación webhook */ publishWebhookNotification(tenantId: string, agentId: number, webhookUrl: string, payload: any, retryCount?: number): Promise<void>; /** * Publica evento de actualización de contactos */ publishContactUpdate(tenantId: string, agentId: number, contacts: any[], action?: "create" | "update" | "delete"): Promise<void>; /** * Publica múltiples eventos de mensajes nuevos en batch */ publishMessageBatch(events: Array<{ tenantId: string; agentId: number; messages: any[]; }>): Promise<void>; /** * Genera clave de sesión única */ private getSessionKey; } //# sourceMappingURL=event-publisher.d.ts.map