import { Module, forwardRef } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AlopeykModule } from 'src/thirdParty/alopeyk/alopeyk.module';
import { SmsModule } from '../../sms/sms.module';
import { MahexModule } from '../../thirdParty/mahex/mahex.module';
import { AddressModule } from '../address/address.module';
import { CarModule } from '../car/car.module';
import { DiscountModule } from '../discount/discount.module';
import { PointModule } from '../point/point.module';
import { ProductModule } from '../product/product.module';
import { SiteInfoModule } from '../siteInfo/site-info.module';
import { UserModule } from '../user/user.module';
import { OrderItemEntity } from './entities/order-item.entity';
import { OrderEntity } from './entities/order.entity';
import { OrderController } from './order.controller';
import { OrderService } from './order.service';
import { PaymentModule } from '../payment/payment.module';
import { SnappPayModule } from '../../gateway/snappPay/snappPay.module';
import { SshafModule } from '../../thirdParty/sshaf/sshaf.module';
import { SamtModule } from '../../thirdParty/samt/samt.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([OrderEntity, OrderItemEntity]),
    SiteInfoModule,
    ProductModule,
    PointModule,
    SmsModule,
    AddressModule,
    DiscountModule,
    AlopeykModule,
    MahexModule,
    SnappPayModule,
    SshafModule,
    SamtModule,
    forwardRef(() => CarModule),
    forwardRef(() => UserModule),
    forwardRef(() => PaymentModule),
  ],
  controllers: [OrderController],
  providers: [OrderService],
  exports: [OrderService],
})
export class OrderModule {}
