Files
plates-server/src/push-notifications/push-notifications.module.ts
richarjiang 37cc2a729b feat(push-notifications): 新增挑战提醒定时推送功能
新增每日定时推送系统,根据用户参与状态发送不同类型的挑战提醒:
- 已参与用户:每日发送鼓励推送
- 未参与用户:隔天发送挑战邀请
- 匿名用户:隔天发送通用邀请

包含推送历史记录表、定时任务调度、多类型文案模板和防重复发送机制
2025-11-03 17:49:14 +08:00

59 lines
2.0 KiB
TypeScript

import { Module } from '@nestjs/common';
import { SequelizeModule } from '@nestjs/sequelize';
import { PushNotificationsController } from './push-notifications.controller';
import { PushTemplateController } from './push-template.controller';
import { PushNotificationsService } from './push-notifications.service';
import { ApnsProvider } from './apns.provider';
import { PushTokenService } from './push-token.service';
import { PushTemplateService } from './push-template.service';
import { PushMessageService } from './push-message.service';
import { PushTestService } from './push-test.service';
import { ChallengeReminderService } from './challenge-reminder.service';
import { UserPushToken } from './models/user-push-token.model';
import { PushMessage } from './models/push-message.model';
import { PushTemplate } from './models/push-template.model';
import { PushReminderHistory } from './models/push-reminder-history.model';
import { ConfigModule } from '@nestjs/config';
import { DatabaseModule } from '../database/database.module';
import { UsersModule } from '../users/users.module';
import { ChallengesModule } from '../challenges/challenges.module';
import { ChallengeParticipant } from '../challenges/models/challenge-participant.model';
@Module({
imports: [
ConfigModule,
DatabaseModule,
UsersModule,
ChallengesModule,
SequelizeModule.forFeature([
UserPushToken,
PushMessage,
PushTemplate,
PushReminderHistory,
ChallengeParticipant,
]),
],
controllers: [
PushNotificationsController,
PushTemplateController,
],
providers: [
ApnsProvider,
PushNotificationsService,
PushTokenService,
PushTemplateService,
PushMessageService,
PushTestService,
ChallengeReminderService,
],
exports: [
ApnsProvider,
PushNotificationsService,
PushTokenService,
PushTemplateService,
PushMessageService,
PushTestService,
ChallengeReminderService,
],
})
export class PushNotificationsModule { }