Skip to Content
Living documentation — last reviewed 2026-05-28
FeaturesNotificationsNotifications — Code Map

Notifications — Code Map

API

FileRole
apps/api/src/notifications/notifications.module.tsGlobal module; registers RESEND_CLIENT, ScheduleModule, exports services
apps/api/src/notifications/email.service.tsThin wrapper over Resend; from-address management; test mode in-memory log
apps/api/src/notifications/notification-scheduler.service.tsCron jobs: handleClassReminders, handleExpirationWarnings
apps/api/src/notifications/cancellation-notifications.service.tsBooking cancellation emails (called from bookings module)
apps/api/src/notifications/constants.tsDI token RESEND_CLIENT
apps/api/src/notifications/email-types.tsType 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.tsTests
apps/api/src/common/crons-enabled.tscronsEnabled() gate
apps/api/src/common/cron-retry.tsrunWithRetry helper

Config

EnvPurpose
RESEND_API_KEYRequired at boot
RESEND_FROM_ADDRESSOptional; defaults to FitKit <noreply@fitkit.fit>
CRONS_ENABLED or equivalentToggle; off in dev

Cross-feature

  • Bookings, subscriptions, class sessions are queried; no schema lives in this module.