import { Module } from '@nestjs/common';
import { HttpModule } from '@nestjs/axios';
import { PaymentsController } from './payments.controller';
import { PaymentsService } from './payments.service';
import { SeatsModule } from '../seats/seats.module';
import { TicketsModule } from '../tickets/tickets.module';
import { TelebirrProvider } from './providers/telebirr.provider';
import { CbeBirrProvider } from './providers/cbe-birr.provider';
import { EBirrProvider } from './providers/ebirr.provider';
import { CardProvider } from './providers/card.provider';
import { WaafiProvider } from './providers/waafi.provider';
import { WebhooksController } from './webhooks/webhooks.controller';
import { TelebirrWebhookService } from './webhooks/telebirr-webhook.service';
import { CbeBirrWebhookService } from './webhooks/cbe-birr-webhook.service';
import { EBirrWebhookService } from './webhooks/ebirr-webhook.service';
import { CardWebhookService } from './webhooks/card-webhook.service';
import { WaafiWebhookService } from './webhooks/waafi-webhook.service';

@Module({
  imports: [SeatsModule, TicketsModule, HttpModule.register({ timeout: 10_000 })],
  controllers: [PaymentsController, WebhooksController],
  providers: [
    PaymentsService,
    TelebirrProvider,
    CbeBirrProvider,
    EBirrProvider,
    CardProvider,
    WaafiProvider,
    TelebirrWebhookService,
    CbeBirrWebhookService,
    EBirrWebhookService,
    CardWebhookService,
    WaafiWebhookService,
  ],
})
export class PaymentsModule {}
