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", };