UNPKG

redai-automation-web-sdk

Version:

TypeScript SDK for RedAI Automation Web API - Zalo Personal automation, messaging, advanced sticker search, and bulk operations. 100% compatible with automation-web backend. v1.8.1: Updated GroupInfo interface to match backend controller with complete gro

235 lines 7.68 kB
/** * System Event Job Types * 100% khớp với automation-web system event jobs */ import { BaseZaloWebhookEvent, ZaloWebhookEventType, ZaloConnectionStatus, BaseQueueJob } from './webhook-job.types'; /** * Connection Status Event Data */ export interface ZaloConnectionStatusData { status: ZaloConnectionStatus; previousStatus?: ZaloConnectionStatus; timestamp: number; reason?: string; reconnectAttempts?: number; lastConnectedAt?: number; metadata?: Record<string, any>; } /** * Connection status event interfaces - 4 variants */ export interface ZaloConnectionStatusConnectedEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CONNECTION_STATUS_CONNECTED; data: ZaloConnectionStatusData & { status: ZaloConnectionStatus.CONNECTED; }; } export interface ZaloConnectionStatusDisconnectedEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CONNECTION_STATUS_DISCONNECTED; data: ZaloConnectionStatusData & { status: ZaloConnectionStatus.DISCONNECTED; }; } export interface ZaloConnectionStatusReconnectingEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CONNECTION_STATUS_RECONNECTING; data: ZaloConnectionStatusData & { status: ZaloConnectionStatus.RECONNECTING; }; } export interface ZaloConnectionStatusLoggedOutEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CONNECTION_STATUS_LOGGED_OUT; data: ZaloConnectionStatusData & { status: ZaloConnectionStatus.LOGGED_OUT; }; } /** * Union type for all connection status events */ export type ZaloConnectionStatusEvent = ZaloConnectionStatusConnectedEvent | ZaloConnectionStatusDisconnectedEvent | ZaloConnectionStatusReconnectingEvent | ZaloConnectionStatusLoggedOutEvent; /** * Upload Attachment Event Data */ export interface ZaloUploadAttachmentData { attachmentId: string; fileName: string; fileSize: number; fileType: string; uploadUrl?: string; downloadUrl?: string; progress?: number; error?: string; timestamp: number; metadata?: Record<string, any>; } /** * Upload attachment event interfaces - 3 variants */ export interface ZaloUploadAttachmentInProgressEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.UPLOAD_ATTACHMENT_IN_PROGRESS; data: ZaloUploadAttachmentData & { progress: number; }; } export interface ZaloUploadAttachmentCompletedEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.UPLOAD_ATTACHMENT_COMPLETED; data: ZaloUploadAttachmentData & { downloadUrl: string; progress: 100; }; } export interface ZaloUploadAttachmentFailedEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.UPLOAD_ATTACHMENT_FAILED; data: ZaloUploadAttachmentData & { error: string; }; } /** * Union type for all upload attachment events */ export type ZaloUploadAttachmentEvent = ZaloUploadAttachmentInProgressEvent | ZaloUploadAttachmentCompletedEvent | ZaloUploadAttachmentFailedEvent; /** * Cipher Key Event Data */ export interface ZaloCipherKeyData { threadId: string; keyId: string; keyVersion: number; algorithm: string; expiresAt?: number; timestamp: number; metadata?: Record<string, any>; } /** * Cipher key event interfaces - 4 variants */ export interface ZaloCipherKeyUpdatedInUserEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CIPHER_KEY_UPDATED_IN_USER; data: ZaloCipherKeyData; } export interface ZaloCipherKeyUpdatedInGroupEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CIPHER_KEY_UPDATED_IN_GROUP; data: ZaloCipherKeyData; } export interface ZaloCipherKeyExpiredInUserEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CIPHER_KEY_EXPIRED_IN_USER; data: ZaloCipherKeyData; } export interface ZaloCipherKeyExpiredInGroupEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.CIPHER_KEY_EXPIRED_IN_GROUP; data: ZaloCipherKeyData; } /** * Union type for all cipher key events */ export type ZaloCipherKeyEvent = ZaloCipherKeyUpdatedInUserEvent | ZaloCipherKeyUpdatedInGroupEvent | ZaloCipherKeyExpiredInUserEvent | ZaloCipherKeyExpiredInGroupEvent; /** * Error Event Data */ export interface ZaloErrorData { errorCode: string; errorMessage: string; errorStack?: string; context?: Record<string, any>; timestamp: number; severity: 'low' | 'medium' | 'high' | 'critical'; recoverable: boolean; metadata?: Record<string, any>; } /** * Error event interfaces - 6 variants */ export interface ZaloErrorSystemEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.ERROR_SYSTEM; data: ZaloErrorData; } export interface ZaloErrorNetworkEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.ERROR_NETWORK; data: ZaloErrorData; } export interface ZaloErrorAuthenticationEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.ERROR_AUTHENTICATION; data: ZaloErrorData; } export interface ZaloErrorValidationEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.ERROR_VALIDATION; data: ZaloErrorData; } export interface ZaloErrorBusinessLogicEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.ERROR_BUSINESS_LOGIC; data: ZaloErrorData; } export interface ZaloErrorUnknownEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.ERROR_UNKNOWN; data: ZaloErrorData; } /** * Union type for all error events */ export type ZaloErrorEvent = ZaloErrorSystemEvent | ZaloErrorNetworkEvent | ZaloErrorAuthenticationEvent | ZaloErrorValidationEvent | ZaloErrorBusinessLogicEvent | ZaloErrorUnknownEvent; /** * Old Messages Event Data */ export interface ZaloOldMessagesData { threadId: string; messages: Array<{ messageId: string; content: string; timestamp: number; fromId: string; fromName: string; }>; totalCount: number; hasMore: boolean; timestamp: number; } /** * Old messages event interface */ export interface ZaloOldMessagesEvent extends BaseZaloWebhookEvent { eventType: ZaloWebhookEventType.OLD_MESSAGES; data: ZaloOldMessagesData; } /** * Union type for all system events */ export type ZaloSystemEvent = ZaloConnectionStatusEvent | ZaloUploadAttachmentEvent | ZaloCipherKeyEvent | ZaloErrorEvent | ZaloOldMessagesEvent; /** * Connection Status Queue Job */ export interface ConnectionStatusQueueJob extends BaseQueueJob<ZaloConnectionStatusEvent> { name: 'connection-status-event'; data: ZaloConnectionStatusEvent; } /** * Upload Attachment Queue Job */ export interface UploadAttachmentQueueJob extends BaseQueueJob<ZaloUploadAttachmentEvent> { name: 'upload-attachment-event'; data: ZaloUploadAttachmentEvent; } /** * Cipher Key Queue Job */ export interface CipherKeyQueueJob extends BaseQueueJob<ZaloCipherKeyEvent> { name: 'cipher-key-event'; data: ZaloCipherKeyEvent; } /** * Error Queue Job */ export interface ErrorQueueJob extends BaseQueueJob<ZaloErrorEvent> { name: 'error-event'; data: ZaloErrorEvent; } /** * Old Messages Queue Job */ export interface OldMessagesQueueJob extends BaseQueueJob<ZaloOldMessagesEvent> { name: 'old-messages-event'; data: ZaloOldMessagesEvent; } /** * Union type for all system queue jobs */ export type SystemQueueJobUnion = ConnectionStatusQueueJob | UploadAttachmentQueueJob | CipherKeyQueueJob | ErrorQueueJob | OldMessagesQueueJob; //# sourceMappingURL=system-job.types.d.ts.map