Add staff email client with WebSocket real-time updates
Implements a complete email client for platform staff members: Backend: - Add routing_mode field to PlatformEmailAddress (PLATFORM/STAFF) - Create staff_email app with models for folders, emails, attachments, labels - IMAP service for fetching emails with folder mapping - SMTP service for sending emails with attachment support - Celery tasks for periodic sync and full sync operations - WebSocket consumer for real-time notifications - Comprehensive API viewsets with filtering and actions Frontend: - Thunderbird-style three-pane email interface - Multi-account support with drag-and-drop ordering - Email composer with rich text editor - Email viewer with thread support - Real-time WebSocket updates for new emails and sync status - 94 unit tests covering models, serializers, views, services, and consumers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,7 @@ export interface PlatformEmailAddressListItem {
|
||||
email_address: string;
|
||||
color: string;
|
||||
assigned_user?: AssignedUser | null;
|
||||
routing_mode: 'PLATFORM' | 'STAFF';
|
||||
is_active: boolean;
|
||||
is_default: boolean;
|
||||
mail_server_synced: boolean;
|
||||
@@ -78,6 +79,7 @@ export interface PlatformEmailAddressCreate {
|
||||
domain: string;
|
||||
color: string;
|
||||
password: string;
|
||||
routing_mode?: 'PLATFORM' | 'STAFF';
|
||||
is_active: boolean;
|
||||
is_default: boolean;
|
||||
}
|
||||
@@ -88,6 +90,7 @@ export interface PlatformEmailAddressUpdate {
|
||||
assigned_user_id?: number | null;
|
||||
color?: string;
|
||||
password?: string;
|
||||
routing_mode?: 'PLATFORM' | 'STAFF';
|
||||
is_active?: boolean;
|
||||
is_default?: boolean;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user