skailan-conversations
Version:
Servicio de conversaciones y mensajería para Skailan
100 lines • 2.89 kB
TypeScript
export interface ChannelConfig {
[key: string]: any;
}
export interface TelegramConfig extends ChannelConfig {
botToken: string;
webhookUrl?: string;
allowedUpdates?: string[];
}
export interface WhatsAppConfig extends ChannelConfig {
accessToken: string;
phoneNumberId: string;
webhookVerifyToken: string;
}
export interface FacebookConfig extends ChannelConfig {
pageAccessToken: string;
pageId: string;
webhookVerifyToken: string;
}
export type ChannelType = 'telegram' | 'whatsapp' | 'facebook' | 'instagram' | 'email' | 'sms';
export type ChannelStatus = 'pending_setup' | 'active' | 'inactive' | 'error' | 'maintenance';
export declare class Channel {
id: string;
organizationId: string;
type: ChannelType;
config: ChannelConfig;
status: ChannelStatus;
createdAt: Date;
updatedAt: Date;
constructor(id: string, organizationId: string, type: ChannelType, config: ChannelConfig, status: ChannelStatus, createdAt: Date, updatedAt: Date);
/**
* Valida que la configuración del canal sea correcta según su tipo
*/
private validate;
/**
* Valida la configuración específica según el tipo de canal
*/
private validateConfig;
private validateTelegramConfig;
private validateWhatsAppConfig;
private validateFacebookConfig;
/**
* Activa el canal
*/
activate(): void;
/**
* Desactiva el canal
*/
deactivate(): void;
/**
* Marca el canal como en error
*/
markAsError(): void;
/**
* Marca el canal como en mantenimiento
*/
setMaintenance(): void;
/**
* Verifica si el canal está activo
*/
isActive(): boolean;
/**
* Verifica si el canal está configurado correctamente
*/
isConfigured(): boolean;
/**
* Actualiza la configuración del canal
*/
updateConfig(newConfig: ChannelConfig): void;
/**
* Obtiene la configuración específica según el tipo
*/
getTelegramConfig(): TelegramConfig;
getWhatsAppConfig(): WhatsAppConfig;
getFacebookConfig(): FacebookConfig;
/**
* Verifica si el canal puede enviar mensajes
*/
canSendMessages(): boolean;
/**
* Verifica si el canal puede recibir mensajes
*/
canReceiveMessages(): boolean;
/**
* Crea una nueva instancia de Channel desde datos primitivos
*/
static create(id: string, organizationId: string, type: ChannelType, config: ChannelConfig, status?: ChannelStatus): Channel;
/**
* Reconstruye una instancia de Channel desde datos de la base de datos
*/
static fromData(data: {
id: string;
organizationId: string;
type: string;
config: any;
status: string;
createdAt: Date;
updatedAt: Date;
}): Channel;
}
//# sourceMappingURL=Channel.d.ts.map