import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { CqrsModule } from '@nestjs/cqrs';
import { IndexHolidayCalendarManager } from '../../configuration/google-calendar/domain/usecases/managers/index-holiday-google-calendar.manager';
import { GoogleCalendarController } from './infrastructure/google-calendar.controller';
import { GoogleCalendarOrchestrator } from './domain/usecases/google-calendar.orchestrator';
import { TransactionDataService } from 'src/modules/transaction/transaction/data/services/transaction-data.service';
import { TransactionModel } from 'src/modules/transaction/transaction/data/models/transaction.model';
import { TypeOrmModule } from '@nestjs/typeorm';
import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants';
import { TransactionItemModel } from 'src/modules/transaction/transaction/data/models/transaction-item.model';
import { TransactionTaxModel } from 'src/modules/transaction/transaction/data/models/transaction-tax.model';
import { CouchModule } from 'src/modules/configuration/couch/couch.module';
@Module({
  imports: [
    ConfigModule.forRoot(),
    TypeOrmModule.forFeature(
      [TransactionModel, TransactionItemModel, TransactionTaxModel],
      CONNECTION_NAME.DEFAULT,
    ),
    CqrsModule,
    CouchModule,
  ],
  controllers: [GoogleCalendarController],
  providers: [
    IndexHolidayCalendarManager,

    TransactionDataService,

    GoogleCalendarOrchestrator,
  ],
})
export class GoogleCalendarModule {}
