import { Module } from '@nestjs/common'; import { BullModule } from '@nestjs/bullmq'; import { SmsCodeStore } from './sms/sms-code.store'; import { SmsMockProvider } from './sms/sms.mock.provider'; import { SmsAliyunProvider } from './sms/sms.aliyun.provider'; import { SmsRouterProvider } from './sms/sms.router.provider'; import { PayMockProvider } from './pay/pay.mock.provider'; import { PayWechatProvider } from './pay/pay.wechat.provider'; import { PayRouterProvider } from './pay/pay.router.provider'; import { DeliveryMockProvider } from './delivery/delivery.mock.provider'; import { WechatApiProvider } from './wechat/wechat.api.provider'; import { WechatDisabledProvider } from './wechat/wechat.disabled.provider'; import { WechatMockProvider } from './wechat/wechat.mock.provider'; import { WechatRouterProvider } from './wechat/wechat.router.provider'; import { WechatOrderShippingService } from './wechat/wechat-order-shipping.service'; import { WechatTradeManageService } from './wechat/wechat-trade-manage.service'; import { OssAliyunProvider } from './oss/oss.aliyun.provider'; import { TencentLbsProvider } from './map/tencent-lbs.provider'; import { SMS_PROVIDER, PAY_PROVIDER, DELIVERY_PROVIDER, WECHAT_PROVIDER, OSS_PROVIDER, MAP_PROVIDER, } from './integrations.constants'; import { CourierModule } from './courier/courier.module'; import { DELIVERY_QUEUE } from '../jobs/jobs.constants'; @Module({ imports: [BullModule.registerQueue({ name: DELIVERY_QUEUE }), CourierModule], providers: [ SmsCodeStore, SmsMockProvider, SmsAliyunProvider, SmsRouterProvider, { provide: SMS_PROVIDER, useExisting: SmsRouterProvider }, WechatApiProvider, WechatDisabledProvider, WechatMockProvider, WechatRouterProvider, { provide: WECHAT_PROVIDER, useExisting: WechatRouterProvider }, WechatOrderShippingService, WechatTradeManageService, PayMockProvider, PayWechatProvider, PayRouterProvider, { provide: PAY_PROVIDER, useExisting: PayRouterProvider }, { provide: DELIVERY_PROVIDER, useClass: DeliveryMockProvider }, OssAliyunProvider, { provide: OSS_PROVIDER, useExisting: OssAliyunProvider }, DeliveryMockProvider, TencentLbsProvider, { provide: MAP_PROVIDER, useExisting: TencentLbsProvider }, ], exports: [ SMS_PROVIDER, SmsCodeStore, PAY_PROVIDER, DELIVERY_PROVIDER, WECHAT_PROVIDER, WechatOrderShippingService, WechatTradeManageService, OSS_PROVIDER, MAP_PROVIDER, TencentLbsProvider, CourierModule, ], }) export class IntegrationsModule {}