dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_EmailModule cluster_EmailModule_exports cluster_EmailModule_providers cluster_EmailModule_imports CLParticipantModule CLParticipantModule EmailModule EmailModule CLParticipantModule->EmailModule DynamicMailFieldsModule DynamicMailFieldsModule DynamicMailFieldsModule->EmailModule BNestEmailLogConfig BNestEmailLogConfig EmailModule->BNestEmailLogConfig BNestEmailLogService BNestEmailLogService EmailModule->BNestEmailLogService EmailEngagementService EmailEngagementService EmailModule->EmailEngagementService EmailPreferencesEngagementModule EmailPreferencesEngagementModule EmailModule->EmailPreferencesEngagementModule EmailReminderService EmailReminderService EmailModule->EmailReminderService EmailResilienceModule EmailResilienceModule EmailModule->EmailResilienceModule EmailSendingLimitsModule EmailSendingLimitsModule EmailModule->EmailSendingLimitsModule EmailValidationService EmailValidationService EmailModule->EmailValidationService EnhancedEmailService EnhancedEmailService EmailModule->EnhancedEmailService JourneyEmailAttachmentsService JourneyEmailAttachmentsService EmailModule->JourneyEmailAttachmentsService UnsubscribeTokenService UnsubscribeTokenService EmailModule->UnsubscribeTokenService EmailEngagementService EmailEngagementService EmailEngagementService->EmailModule EmailReminderService EmailReminderService EmailReminderService->EmailModule EmailTestService EmailTestService EmailTestService->EmailModule EmailValidationService EmailValidationService EmailValidationService->EmailModule EnhancedEmailService EnhancedEmailService EnhancedEmailService->EmailModule JourneyEmailAttachmentsService JourneyEmailAttachmentsService JourneyEmailAttachmentsService->EmailModule RecallAssessEmailLogHooksService RecallAssessEmailLogHooksService RecallAssessEmailLogHooksService->EmailModule RecallAssessEmailLogHooksService->EmailModule UnsubscribeTokenService UnsubscribeTokenService UnsubscribeTokenService->EmailModule UpdatePendingEmailLogsService UpdatePendingEmailLogsService UpdatePendingEmailLogsService->EmailModule
import { EmailEngagementService } from "@api/admin/email/services/email-engagement.service";
import { CLParticipantModule } from "@api/client/participant/participant.module";
import { DynamicMailFieldsModule } from "@api/shared/dynamic-mail-fields/dynamic-mail-fields.module";
import { UnsubscribeTokenService } from "@api/shared/email/services/unsubscribe-token.service";
import { BNestPrismaModule } from "@bish-nest/core/services";
import {
  BNEST_EMAIL_LOG_HOOKS,
  BNestEmailLogConfig,
  BNestEmailLogController,
  BNestEmailLogService,
} from "@bish-nest/email-log";
import { forwardRef, Module } from "@nestjs/common";
import { ScheduleModule } from "@nestjs/schedule";
import { RecallAssessEmailLogHooksService } from "../../../common/adapters/recallassess-email-log-hooks.service";
import { EmailPreferencesController } from "./controllers/email-preferences.controller";
import { EmailTemplateUpdatePendingController } from "./controllers/email-template-update-pending.controller";
import { EmailTestController } from "./controllers/email-test.controller";
import { EmailPreferencesEngagementModule } from "./email-preferences-engagement.module";
import { EmailResilienceModule } from "./email-resilience.module";
import { EmailSendingLimitsModule } from "./email-sending-limits.module";
import { EmailReminderService } from "./services/email-reminder.service";
import { EmailTestService } from "./services/email-test.service";
import { EmailValidationService } from "./services/email-validation.service";
import { EnhancedEmailService } from "./services/enhanced-email.service";
import { JourneyEmailAttachmentsService } from "./services/journey-email-attachments.service";
import { UpdatePendingEmailLogsService } from "./services/update-pending-email-logs.service";

@Module({
  imports: [
    ScheduleModule.forRoot(),
    BNestPrismaModule,
    CLParticipantModule,
    DynamicMailFieldsModule,
    forwardRef(() => EmailSendingLimitsModule),
    forwardRef(() => EmailResilienceModule),
    forwardRef(() => EmailPreferencesEngagementModule),
  ],
  controllers: [
    EmailPreferencesController,
    EmailTemplateUpdatePendingController,
    EmailTestController,
    BNestEmailLogController,
  ],
  providers: [
    EmailReminderService,
    UnsubscribeTokenService,
    EnhancedEmailService,
    RecallAssessEmailLogHooksService,
    {
      provide: BNEST_EMAIL_LOG_HOOKS,
      useExisting: RecallAssessEmailLogHooksService,
    },
    BNestEmailLogConfig, // Required by InitService
    BNestEmailLogService, // Required by ScheduledEmailProcessorService
    // ✅ Email validation (DB flags, eligibility)
    EmailValidationService,
    UpdatePendingEmailLogsService,
    EmailTestService,
    EmailEngagementService,
    JourneyEmailAttachmentsService,
  ],
  exports: [
    EmailReminderService,
    UnsubscribeTokenService,
    EnhancedEmailService,
    EmailSendingLimitsModule,
    EmailResilienceModule,
    EmailPreferencesEngagementModule,
    BNestEmailLogConfig, // Export for InitService
    BNestEmailLogService, // Export for ScheduledEmailProcessorService
    EmailValidationService,
    EmailEngagementService,
    JourneyEmailAttachmentsService,
  ],
})
export class EmailModule {}

results matching ""

    No results matching ""