feat: Add daily event notification emails via cron job

- Add node-cron for scheduled tasks
- Create cron/calendar structure with:
  - email-template.js: HTML email template for event notifications
  - event-notifier.js: Logic to query tomorrow's events and send emails
  - index.js: Cron scheduler (runs daily at configurable time)
- Send notifications via JMAP using sender email from database
- Add admin endpoint POST /api/admin/trigger-notifications for testing
- Add env variables: NOTIFICATION_TIME, NOTIFICATION_SENDER_EMAIL

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
richardtekula
2025-12-15 14:27:53 +01:00
parent 3eb2f6ea02
commit 77754d0668
9 changed files with 660 additions and 0 deletions

17
src/cron/index.js Normal file
View File

@@ -0,0 +1,17 @@
import { logger } from '../utils/logger.js';
import { startCalendarNotificationCron, triggerEventNotifications } from './calendar/index.js';
/**
* Start all cron jobs
*/
export const startAllCronJobs = () => {
logger.info('=== Inicializujem cron jobs ===');
// Calendar event notifications
startCalendarNotificationCron();
logger.info('=== Všetky cron jobs inicializované ===');
};
// Export individual functions for testing/manual triggers
export { triggerEventNotifications };