import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { CqrsModule } from '@nestjs/cqrs';
import { PaymentMethodModel } from 'src/modules/transaction/payment-method/data/models/payment-method.model';
import { PaymentMethodDataService } from 'src/modules/transaction/payment-method/data/services/payment-method-data.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants';
import { TransactionModel } from 'src/modules/transaction/transaction/data/models/transaction.model';
import { TransactionDataService } from 'src/modules/transaction/transaction/data/services/transaction-data.service';
import { PaymentTransactionHandler } from './domain/handlers/payment-transaction.handler';
import { MailTemplateController } from './infrastructure/mail.controller';
import { PdfMakeManager } from '../export/domain/managers/pdf-make.manager';
import { CouchModule } from '../couch/couch.module';
@Module({
  imports: [
    ConfigModule.forRoot(),
    TypeOrmModule.forFeature(
      [PaymentMethodModel, TransactionModel],
      CONNECTION_NAME.DEFAULT,
    ),
    CqrsModule,
    CouchModule,
  ],
  controllers: [MailTemplateController],
  providers: [
    PdfMakeManager,

    PaymentTransactionHandler,
    PaymentMethodDataService,
    TransactionDataService,
  ],
})
export class MailModule {}
