import type { Core } from '@strapi/strapi'; import { runBootstrap } from './bootstrap'; import { runEventReminders } from './lib/event-reminders'; import { registerPartnerContentAccess } from './lib/partner-content-access'; import { registerPartnerReviewNotifications } from './lib/partner-review-notifications'; import { runWaitlistPromotion } from './lib/waitlist-promotion'; export default { /** * An asynchronous register function that runs before * your application is initialized. * * This gives you an opportunity to extend code. */ register({ strapi }: { strapi: Core.Strapi }) { registerPartnerReviewNotifications(strapi); registerPartnerContentAccess(strapi); }, /** * An asynchronous bootstrap function that runs before * your application gets started. * * Reconciles the state the SHARP-ER site depends on: the `en` / `ar` locales * and the Public role permissions. See `src/bootstrap/` - every step is * idempotent, so this is safe on every boot. */ async bootstrap({ strapi }: { strapi: Core.Strapi }) { await runBootstrap({ strapi }); // The cron provider always runs its own `start()`, so `strapi.cron.add()` // here schedules immediately. Respect the explicit opt-out in // `server.cron.enabled` (env `CRON_ENABLED`): without SMTP configured the // hourly job would just fail and log, so it stays inert by default. if (strapi.config.get('server.cron.enabled', false)) { strapi.cron.add({ 'send-event-reminders': { task: runEventReminders, options: { rule: '0 * * * *', tz: 'Africa/Tripoli' }, }, 'run-waitlist-promotion': { task: runWaitlistPromotion, options: { rule: '0 * * * *', tz: 'Africa/Tripoli' }, }, }); strapi.log.info('[index] event reminder + waitlist promotion cron jobs registered.'); } }, };