twenty / packages /twenty-server /src /modules /emailing /emailing.module.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
3.45 kB
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { BillingModule } from 'src/engine/core-modules/billing/billing.module';
import { EmailingDomainModule } from 'src/engine/core-modules/emailing-domain/emailing-domain.module';
import { EmailingDomainEntity } from 'src/engine/core-modules/emailing-domain/emailing-domain.entity';
import { MessageSuppressionEntity } from 'src/engine/core-modules/emailing-domain/message-suppression.entity';
import { UnsubscribeTopicEntity } from 'src/engine/core-modules/emailing-domain/unsubscribe-topic.entity';
import { FeatureFlagModule } from 'src/engine/core-modules/feature-flag/feature-flag.module';
import { MessageChannelEntity } from 'src/engine/metadata-modules/message-channel/entities/message-channel.entity';
import { MessageChannelMetadataModule } from 'src/engine/metadata-modules/message-channel/message-channel-metadata.module';
import { PermissionsModule } from 'src/engine/metadata-modules/permissions/permissions.module';
import { UserRoleModule } from 'src/engine/metadata-modules/user-role/user-role.module';
import { provideWorkspaceScopedRepository } from 'src/engine/twenty-orm/workspace-scoped-repository/provide-workspace-scoped-repository';
import { WorkspaceCacheModule } from 'src/engine/workspace-cache/workspace-cache.module';
import { WorkspaceEventEmitterModule } from 'src/engine/workspace-event-emitter/workspace-event-emitter.module';
import { UnsubscribeController } from 'src/modules/emailing/controllers/unsubscribe.controller';
import { EmailingSendResolver } from 'src/modules/emailing/resolvers/emailing-send.resolver';
import { UnsubscribeTopicResolver } from 'src/modules/emailing/resolvers/unsubscribe-topic.resolver';
import { EmailBillingService } from 'src/modules/emailing/services/email-billing.service';
import { EmailingDomainSenderService } from 'src/modules/emailing/services/emailing-domain-sender.service';
import { MessageCampaignStatisticsService } from 'src/modules/emailing/services/message-campaign-statistics.service';
import { MessageCampaignService } from 'src/modules/emailing/services/message-campaign.service';
import { MessageSuppressionService } from 'src/modules/emailing/services/message-suppression.service';
import { UnsubscribeTopicService } from 'src/modules/emailing/services/unsubscribe-topic.service';
@Module({
imports: [
EmailingDomainModule,
MessageChannelMetadataModule,
FeatureFlagModule,
PermissionsModule,
UserRoleModule,
BillingModule,
WorkspaceEventEmitterModule,
WorkspaceCacheModule,
TypeOrmModule.forFeature([
MessageChannelEntity,
EmailingDomainEntity,
MessageSuppressionEntity,
UnsubscribeTopicEntity,
]),
],
controllers: [UnsubscribeController],
providers: [
EmailBillingService,
MessageCampaignService,
MessageCampaignStatisticsService,
MessageSuppressionService,
UnsubscribeTopicService,
EmailingDomainSenderService,
EmailingSendResolver,
UnsubscribeTopicResolver,
provideWorkspaceScopedRepository(EmailingDomainEntity),
provideWorkspaceScopedRepository(MessageSuppressionEntity),
provideWorkspaceScopedRepository(UnsubscribeTopicEntity),
],
exports: [
EmailingDomainSenderService,
MessageCampaignService,
MessageCampaignStatisticsService,
MessageSuppressionService,
UnsubscribeTopicService,
],
})
export class EmailingModule {}