UNPKG

skailan-conversations

Version:

Servicio de conversaciones y mensajería para Skailan

90 lines 2.67 kB
import { Message } from "../entities/Message"; import { Conversation } from "../entities/Conversation"; export interface MessageDisplayData { id: string; content: string; type: "text" | "image" | "document" | "audio" | "video" | "location" | "contact"; senderType: "user" | "system" | "bot"; senderId: string; senderName: string; senderAvatar?: string; timestamp: Date; status: "sent" | "delivered" | "read" | "failed" | "pending"; isOutgoing: boolean; channelType: "telegram" | "whatsapp" | "email" | "web"; metadata?: { telegramMessageId?: number; replyToMessageId?: string; inlineKeyboard?: Array<Array<{ text: string; callbackData: string; }>>; fileUrl?: string; fileName?: string; fileSize?: number; mimeType?: string; }; } export interface ConversationDisplayData { id: string; title: string; status: string; lastMessage?: MessageDisplayData; unreadCount: number; participants: Array<{ id: string; name: string; avatar?: string; type: "user" | "bot" | "system"; }>; channelType: "telegram" | "whatsapp" | "email" | "web"; createdAt: Date; updatedAt: Date; } export declare class MessageDisplayService { /** * Convierte un mensaje de la base de datos a formato de visualización */ formatMessageForDisplay(message: Message): MessageDisplayData; /** * Convierte una conversación a formato de visualización */ formatConversationForDisplay(conversation: Conversation, lastMessage?: Message, unreadCount?: number): ConversationDisplayData; /** * Determina el tipo de mensaje basado en el contenido */ private determineMessageType; /** * Obtiene información del remitente */ private getSenderInfo; /** * Extrae metadata específica del canal */ private extractChannelMetadata; /** * Determina el tipo de canal basado en el mensaje */ private determineChannelType; /** * Determina el tipo de canal basado en la conversación */ private determineChannelTypeFromConversation; /** * Obtiene los participantes de una conversación */ private getConversationParticipants; /** * Formatea timestamp para visualización */ formatTimestamp(timestamp: Date): string; /** * Obtiene el estado visual del mensaje */ getMessageStatusDisplay(status: string): { text: string; icon: string; color: string; }; } //# sourceMappingURL=MessageDisplayService.d.ts.map