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
219 lines • 9.9 kB
TypeScript
/**
* Webhook Job Types
* 100% khớp với automation-web/src/shared/types/zalo-webhook-events.types.ts
* Cấu trúc job khi đưa vào queue
*/
/**
* Thread Type enum
*/
export declare enum ZaloThreadType {
USER = "user",
GROUP = "group"
}
/**
* Connection Status enum
*/
export declare enum ZaloConnectionStatus {
CONNECTED = "connected",
DISCONNECTED = "disconnected",
RECONNECTING = "reconnecting",
LOGGED_OUT = "logged_out"
}
/**
* Event Type enum - Chuẩn hóa tất cả event types
*/
export declare enum ZaloWebhookEventType {
TEXT_MESSAGE_SENT_TO_USER = "text-message-sent-to-user",
TEXT_MESSAGE_SENT_TO_GROUP = "text-message-sent-to-group",
TEXT_MESSAGE_RECEIVED_FROM_USER = "text-message-received-from-user",
TEXT_MESSAGE_RECEIVED_FROM_GROUP = "text-message-received-from-group",
IMAGE_MESSAGE_SENT_TO_USER = "image-message-sent-to-user",
IMAGE_MESSAGE_SENT_TO_GROUP = "image-message-sent-to-group",
IMAGE_MESSAGE_RECEIVED_FROM_USER = "image-message-received-from-user",
IMAGE_MESSAGE_RECEIVED_FROM_GROUP = "image-message-received-from-group",
VIDEO_MESSAGE_SENT_TO_USER = "video-message-sent-to-user",
VIDEO_MESSAGE_SENT_TO_GROUP = "video-message-sent-to-group",
VIDEO_MESSAGE_RECEIVED_FROM_USER = "video-message-received-from-user",
VIDEO_MESSAGE_RECEIVED_FROM_GROUP = "video-message-received-from-group",
VOICE_MESSAGE_SENT_TO_USER = "voice-message-sent-to-user",
VOICE_MESSAGE_SENT_TO_GROUP = "voice-message-sent-to-group",
VOICE_MESSAGE_RECEIVED_FROM_USER = "voice-message-received-from-user",
VOICE_MESSAGE_RECEIVED_FROM_GROUP = "voice-message-received-from-group",
FILE_MESSAGE_SENT_TO_USER = "file-message-sent-to-user",
FILE_MESSAGE_SENT_TO_GROUP = "file-message-sent-to-group",
FILE_MESSAGE_RECEIVED_FROM_USER = "file-message-received-from-user",
FILE_MESSAGE_RECEIVED_FROM_GROUP = "file-message-received-from-group",
STICKER_MESSAGE_SENT_TO_USER = "sticker-message-sent-to-user",
STICKER_MESSAGE_SENT_TO_GROUP = "sticker-message-sent-to-group",
STICKER_MESSAGE_RECEIVED_FROM_USER = "sticker-message-received-from-user",
STICKER_MESSAGE_RECEIVED_FROM_GROUP = "sticker-message-received-from-group",
LOCATION_MESSAGE_SENT_TO_USER = "location-message-sent-to-user",
LOCATION_MESSAGE_SENT_TO_GROUP = "location-message-sent-to-group",
LOCATION_MESSAGE_RECEIVED_FROM_USER = "location-message-received-from-user",
LOCATION_MESSAGE_RECEIVED_FROM_GROUP = "location-message-received-from-group",
GIF_MESSAGE_SENT_TO_USER = "gif-message-sent-to-user",
GIF_MESSAGE_SENT_TO_GROUP = "gif-message-sent-to-group",
GIF_MESSAGE_RECEIVED_FROM_USER = "gif-message-received-from-user",
GIF_MESSAGE_RECEIVED_FROM_GROUP = "gif-message-received-from-group",
LINK_MESSAGE_SENT_TO_USER = "link-message-sent-to-user",
LINK_MESSAGE_SENT_TO_GROUP = "link-message-sent-to-group",
LINK_MESSAGE_RECEIVED_FROM_USER = "link-message-received-from-user",
LINK_MESSAGE_RECEIVED_FROM_GROUP = "link-message-received-from-group",
DOODLE_MESSAGE_SENT_TO_USER = "doodle-message-sent-to-user",
DOODLE_MESSAGE_SENT_TO_GROUP = "doodle-message-sent-to-group",
DOODLE_MESSAGE_RECEIVED_FROM_USER = "doodle-message-received-from-user",
DOODLE_MESSAGE_RECEIVED_FROM_GROUP = "doodle-message-received-from-group",
RECOMMENDED_MESSAGE_SENT_TO_USER = "recommended-message-sent-to-user",
RECOMMENDED_MESSAGE_SENT_TO_GROUP = "recommended-message-sent-to-group",
RECOMMENDED_MESSAGE_RECEIVED_FROM_USER = "recommended-message-received-from-user",
RECOMMENDED_MESSAGE_RECEIVED_FROM_GROUP = "recommended-message-received-from-group",
OLD_MESSAGES = "old-messages",
TYPING_BY_SELF_IN_USER = "typing-by-self-in-user",
TYPING_BY_SELF_IN_GROUP = "typing-by-self-in-group",
TYPING_BY_OTHER_IN_USER = "typing-by-other-in-user",
TYPING_BY_OTHER_IN_GROUP = "typing-by-other-in-group",
SEEN_MESSAGES_BY_SELF_IN_USER = "seen-messages-by-self-in-user",
SEEN_MESSAGES_BY_SELF_IN_GROUP = "seen-messages-by-self-in-group",
SEEN_MESSAGES_BY_OTHER_IN_USER = "seen-messages-by-other-in-user",
SEEN_MESSAGES_BY_OTHER_IN_GROUP = "seen-messages-by-other-in-group",
DELIVERED_MESSAGES_BY_SELF_IN_USER = "delivered-messages-by-self-in-user",
DELIVERED_MESSAGES_BY_SELF_IN_GROUP = "delivered-messages-by-self-in-group",
DELIVERED_MESSAGES_BY_OTHER_IN_USER = "delivered-messages-by-other-in-user",
DELIVERED_MESSAGES_BY_OTHER_IN_GROUP = "delivered-messages-by-other-in-group",
REACTION_BY_SELF_IN_USER = "reaction-by-self-in-user",
REACTION_BY_SELF_IN_GROUP = "reaction-by-self-in-group",
REACTION_BY_OTHER_IN_USER = "reaction-by-other-in-user",
REACTION_BY_OTHER_IN_GROUP = "reaction-by-other-in-group",
OLD_REACTIONS_BY_SELF_IN_USER = "old-reactions-by-self-in-user",
OLD_REACTIONS_BY_SELF_IN_GROUP = "old-reactions-by-self-in-group",
OLD_REACTIONS_BY_OTHER_IN_USER = "old-reactions-by-other-in-user",
OLD_REACTIONS_BY_OTHER_IN_GROUP = "old-reactions-by-other-in-group",
FRIEND_EVENT_ADD = "friend-event-add",
FRIEND_EVENT_REMOVE = "friend-event-remove",
FRIEND_EVENT_REQUEST = "friend-event-request",
FRIEND_EVENT_UNDO_REQUEST = "friend-event-undo-request",
FRIEND_EVENT_REJECT_REQUEST = "friend-event-reject-request",
FRIEND_EVENT_SEEN_REQUEST = "friend-event-seen-request",
FRIEND_EVENT_BLOCK = "friend-event-block",
FRIEND_EVENT_UNBLOCK = "friend-event-unblock",
FRIEND_EVENT_BLOCK_CALL = "friend-event-block-call",
FRIEND_EVENT_UNBLOCK_CALL = "friend-event-unblock-call",
FRIEND_EVENT_PIN_UNPIN = "friend-event-pin-unpin",
FRIEND_EVENT_PIN_CREATE = "friend-event-pin-create",
FRIEND_EVENT_UNKNOWN = "friend-event-unknown",
GROUP_EVENT_JOIN_REQUEST = "group-event-join-request",
GROUP_EVENT_JOIN = "group-event-join",
GROUP_EVENT_LEAVE = "group-event-leave",
GROUP_EVENT_REMOVE_MEMBER = "group-event-remove-member",
GROUP_EVENT_BLOCK_MEMBER = "group-event-block-member",
GROUP_EVENT_UPDATE_SETTING = "group-event-update-setting",
GROUP_EVENT_UPDATE = "group-event-update",
GROUP_EVENT_NEW_LINK = "group-event-new-link",
GROUP_EVENT_ADD_ADMIN = "group-event-add-admin",
GROUP_EVENT_REMOVE_ADMIN = "group-event-remove-admin",
GROUP_EVENT_NEW_PIN_TOPIC = "group-event-new-pin-topic",
GROUP_EVENT_UPDATE_PIN_TOPIC = "group-event-update-pin-topic",
GROUP_EVENT_REORDER_PIN_TOPIC = "group-event-reorder-pin-topic",
GROUP_EVENT_UPDATE_BOARD = "group-event-update-board",
GROUP_EVENT_REMOVE_BOARD = "group-event-remove-board",
GROUP_EVENT_UPDATE_TOPIC = "group-event-update-topic",
GROUP_EVENT_UNPIN_TOPIC = "group-event-unpin-topic",
GROUP_EVENT_REMOVE_TOPIC = "group-event-remove-topic",
GROUP_EVENT_ACCEPT_REMIND = "group-event-accept-remind",
GROUP_EVENT_REJECT_REMIND = "group-event-reject-remind",
GROUP_EVENT_REMIND_TOPIC = "group-event-remind-topic",
GROUP_EVENT_UPDATE_AVATAR = "group-event-update-avatar",
GROUP_EVENT_UNKNOWN = "group-event-unknown",
UNDO_BY_SELF_IN_USER = "undo-by-self-in-user",
UNDO_BY_SELF_IN_GROUP = "undo-by-self-in-group",
UNDO_BY_OTHER_IN_USER = "undo-by-other-in-user",
UNDO_BY_OTHER_IN_GROUP = "undo-by-other-in-group",
CONNECTION_STATUS_CONNECTED = "connection-status-connected",
CONNECTION_STATUS_DISCONNECTED = "connection-status-disconnected",
CONNECTION_STATUS_RECONNECTING = "connection-status-reconnecting",
CONNECTION_STATUS_LOGGED_OUT = "connection-status-logged-out",
UPLOAD_ATTACHMENT_IN_PROGRESS = "upload-attachment-in-progress",
UPLOAD_ATTACHMENT_COMPLETED = "upload-attachment-completed",
UPLOAD_ATTACHMENT_FAILED = "upload-attachment-failed",
CIPHER_KEY_UPDATED_IN_USER = "cipher-key-updated-in-user",
CIPHER_KEY_UPDATED_IN_GROUP = "cipher-key-updated-in-group",
CIPHER_KEY_EXPIRED_IN_USER = "cipher-key-expired-in-user",
CIPHER_KEY_EXPIRED_IN_GROUP = "cipher-key-expired-in-group",
ERROR_SYSTEM = "error-system",
ERROR_NETWORK = "error-network",
ERROR_AUTHENTICATION = "error-authentication",
ERROR_VALIDATION = "error-validation",
ERROR_BUSINESS_LOGIC = "error-business-logic",
ERROR_UNKNOWN = "error-unknown"
}
/**
* Base webhook event interface - Cấu trúc job chuẩn
*/
export interface BaseZaloWebhookEvent {
sessionId: string;
userUuid: string;
timestamp: number;
eventType: ZaloWebhookEventType;
metadata?: Record<string, any>;
}
/**
* Job Priority enum
*/
export declare enum JobPriority {
LOW = 1,
NORMAL = 2,
HIGH = 3,
CRITICAL = 4
}
/**
* Job Status enum
*/
export declare enum JobStatus {
WAITING = "waiting",
ACTIVE = "active",
COMPLETED = "completed",
FAILED = "failed",
DELAYED = "delayed",
PAUSED = "paused"
}
/**
* Queue Job Configuration
*/
export interface QueueJobConfig {
priority?: JobPriority;
delay?: number;
attempts?: number;
backoff?: {
type: 'fixed' | 'exponential';
delay: number;
};
removeOnComplete?: number | boolean;
removeOnFail?: number | boolean;
jobId?: string;
}
/**
* Base Queue Job Interface - Cấu trúc job khi đưa vào queue
*/
export interface BaseQueueJob<T = any> {
id?: string;
name: string;
data: T;
opts?: QueueJobConfig;
progress?: number;
returnvalue?: any;
failedReason?: string;
stacktrace?: string[];
attemptsMade?: number;
delay?: number;
timestamp?: number;
processedOn?: number;
finishedOn?: number;
}
/**
* Webhook Queue Job - Job cụ thể cho webhook events
*/
export interface WebhookQueueJob extends BaseQueueJob<BaseZaloWebhookEvent> {
name: 'webhook-event';
data: BaseZaloWebhookEvent;
}
//# sourceMappingURL=webhook-job.types.d.ts.map