import { Module, forwardRef } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { PaymentEntity } from './entities/payment.entity';
import { PaymentController } from './payment.controller';
import { PaymentService } from './payment.service';
import { BankMeliModule } from '../../gateway/bankMeli/bankMeli.module';
import { ZarinpalModule } from '../../gateway/zarinpal/zarinpal.module';
import { NegativeScoreModule } from '../negative-score/negative-score.module';
import { DrivingOffenseModule } from '../drivinig-offense/driving-offense.module';
import { FreewayTollModule } from '../freeway-toll/freeway-toll.module';
import { UserModule } from '../user/user.module';
import { OrderModule } from '../order/order.module';
import { SnappPayModule } from '../../gateway/snappPay/snappPay.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([PaymentEntity]),
    UserModule,
    BankMeliModule,
    ZarinpalModule,
    SnappPayModule,
    forwardRef(() => DrivingOffenseModule),
    forwardRef(() => NegativeScoreModule),
    forwardRef(() => FreewayTollModule),
    forwardRef(() => OrderModule),
  ],
  controllers: [PaymentController],
  providers: [PaymentService],
  exports: [PaymentService],
})
export class PaymentModule {}
