46 lines
1.3 KiB
TypeScript
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",
|
|
};
|