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
TypeScript
/**
* 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