/** * Value Object: NotificationChannel * * Defines the delivery channels for notifications. */ export type NotificationChannel = | 'in_app' // In-app notification (stored in database, shown in UI) | 'email' // Email notification | 'discord' // Discord webhook notification | 'push'; // Push notification (future: mobile/browser) /** * Get human-readable name for channel */ export function getChannelDisplayName(channel: NotificationChannel): string { const names: Record = { in_app: 'In-App', email: 'Email', discord: 'Discord', push: 'Push Notification', }; return names[channel]; } /** * Check if channel requires external integration */ export function isExternalChannel(channel: NotificationChannel): boolean { return channel !== 'in_app'; } /** * Default channels that are always enabled */ export const DEFAULT_ENABLED_CHANNELS: NotificationChannel[] = ['in_app']; /** * All available channels */ export const ALL_CHANNELS: NotificationChannel[] = ['in_app', 'email', 'discord', 'push'];