Files
dmail-api/src/modules/email/constants/email-events.constant.ts
T
2025-07-19 15:40:29 +03:30

46 lines
1.3 KiB
TypeScript

export const WEBSOCKET_EVENTS = {
// Connection Events
CONNECTION_ESTABLISHED: "connection_established",
CONNECTION_ERROR: "connection_error",
CONNECTION_CLOSED: "connection_closed",
USER_LEFT: "user_left",
UNAUTHORIZED: "unauthorized",
// Email Events - Server to Client
NEW_EMAIL: "new_email",
EMAIL_READ: "email_read",
EMAIL_UNREAD: "email_unread",
EMAIL_FLAGGED: "email_flagged",
EMAIL_UNFLAGGED: "email_unflagged",
EMAIL_DELETED: "email_deleted",
EMAIL_MOVED: "email_moved",
EMAIL_SENT: "email_sent",
// Mailbox Events
MAILBOX_UPDATED: "mailbox_updated",
UNREAD_COUNT_UPDATED: "unread_count_updated",
// System Events
PING: "ping",
PONG: "pong",
} as const;
export const WEBSOCKET_ROOMS = {
USER: (userId: string) => `user:${userId}`,
} as const;
export const WEBSOCKET_NAMESPACES = {
EMAIL: "/email",
} as const;
// Type definitions
export type WebSocketEvent = (typeof WEBSOCKET_EVENTS)[keyof typeof WEBSOCKET_EVENTS];
export type WebSocketRoom = string;
export type WebSocketNamespace = (typeof WEBSOCKET_NAMESPACES)[keyof typeof WEBSOCKET_NAMESPACES];
export const EMAIL_QUEUE_CONSTANTS = {
EMAIL_QUEUE: "email_queue",
EMAIL_QUEUE_PROCESSING: "email_queue_processing",
EMAIL_QUEUE_FAILED: "email_queue_failed",
EMAIL_QUEUE_COMPLETED: "email_queue_completed",
};