Notifications — Code Map
API
| File | Role |
|---|---|
apps/api/src/notifications/notifications.module.ts | Global module; registers RESEND_CLIENT, ScheduleModule, exports services |
apps/api/src/notifications/email.service.ts | Thin wrapper over Resend; from-address management; test mode in-memory log |
apps/api/src/notifications/notification-scheduler.service.ts | Cron jobs: handleClassReminders, handleExpirationWarnings |
apps/api/src/notifications/cancellation-notifications.service.ts | Booking cancellation emails (called from bookings module) |
apps/api/src/notifications/constants.ts | DI token RESEND_CLIENT |
apps/api/src/notifications/email-types.ts | Type definitions for email payloads |
apps/api/src/notifications/templates/ | class-reminder.ts, expiration-warning.ts, payment-reminder.ts, cancellation.ts |
apps/api/src/notifications/notification-scheduler.service.unit.spec.ts | Tests |
apps/api/src/common/crons-enabled.ts | cronsEnabled() gate |
apps/api/src/common/cron-retry.ts | runWithRetry helper |
Config
| Env | Purpose |
|---|---|
RESEND_API_KEY | Required at boot |
RESEND_FROM_ADDRESS | Optional; defaults to FitKit <noreply@fitkit.fit> |
CRONS_ENABLED or equivalent | Toggle; off in dev |
Cross-feature
- Bookings, subscriptions, class sessions are queried; no schema lives in this module.