feat: add daily digest email notification module
Build and Push Multi-Platform Images / build-and-push (push) Successful in 50s

- New DailyDigestModule with scheduled summary email for open dashboard items
- Extract StatsService from StatsController for reuse in digest
- Add DailyDigestEnabled, UserEmail, UserPreferredUsername to UserSettings entity
- Sync email/username from OIDC token on each get/update call
- Add dailyDigestEnabled to UserSettingsDto and update API
- Notifications tab in UserSettingsPage with enable toggle and "Jetzt senden" button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-28 15:57:10 +02:00
parent 029d5b351f
commit 52438ee11f
12 changed files with 366 additions and 86 deletions
@@ -11,6 +11,7 @@ export interface UserSettingsData {
mailSignatureHtml: string | null;
defaultLabelTemplateId: number | null;
emailRecipientHistory: string[] | null;
dailyDigestEnabled: boolean;
}
export interface SenderOption {
@@ -31,4 +32,7 @@ export const userSettingsApi = {
getSenders: () =>
api.get<SenderOption[]>('/api/user-settings/senders').then((r) => r.data),
sendDigestNow: () =>
api.post<{ ok: boolean; error?: string }>('/api/daily-digest/send-now').then((r) => r.data),
};