feat: Multi-email ticketing system with platform email addresses

- Add PlatformEmailAddress model for managing platform-level email addresses
- Add TicketEmailAddress model for tenant-level email addresses
- Create MailServerService for IMAP integration with mail.talova.net
- Implement PlatformEmailReceiver for processing incoming platform emails
- Add email autoconfiguration for Mozilla, Microsoft, and Apple clients
- Add configurable email polling interval in platform settings
- Add "Check Emails" button on support page for manual refresh
- Add ticket counts to status tabs on support page
- Add platform email addresses management page
- Add Privacy Policy and Terms of Service pages
- Add robots.txt for SEO
- Restrict email addresses to smoothschedule.com domain only

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-01 17:49:09 -05:00
parent 65da1c73d0
commit ae74b4c2ed
47 changed files with 6523 additions and 1407 deletions

View File

@@ -210,6 +210,15 @@ export interface TicketComment {
isInternal: boolean;
}
export interface TicketEmailAddressListItem {
id: number;
display_name: string;
email_address: string;
color: string;
is_active: boolean;
is_default: boolean;
}
export interface Ticket {
id: string;
tenant?: string; // Tenant ID, optional for platform tickets
@@ -236,6 +245,8 @@ export interface Ticket {
// External sender info (for tickets from non-registered users via email)
externalEmail?: string;
externalName?: string;
// Source email address (which email address received/sent this ticket)
source_email_address?: TicketEmailAddressListItem;
}
export interface TicketTemplate {