import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Merchant } from '@/entities/merchant.entity';
import { MerchantAccount } from '@/entities/merchant-account.entity';
import { Room } from '@/entities/room.entity';
import { RoomCalendar } from '@/entities/room-calendar.entity';
import { Order } from '@/entities/order.entity';
import { Review } from '@/entities/review.entity';
import { MerchantService } from './merchant.service';
import { StatisticsService } from './statistics.service';
import { MerchantSellerController } from './merchant-seller.controller';
import { MerchantAdminController } from './merchant-admin.controller';
import { MerchantAuthModule } from './auth/auth.module';
import { MerchantProfileModule } from './profile/profile.module';
import { MerchantRoomModule } from './room/room.module';
import { MerchantRoomCalendarModule } from './room-calendar/room-calendar.module';
import { MerchantOrderModule } from './order/order.module';
import { MerchantReviewModule } from './review/review.module';
import { MerchantFinanceModule } from './finance/finance.module';
import { MerchantStatisticsModule } from './statistics/statistics.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([Merchant, MerchantAccount, Room, RoomCalendar, Order, Review]),
    MerchantAuthModule,
    MerchantProfileModule,
    MerchantRoomModule,
    MerchantRoomCalendarModule,
    MerchantOrderModule,
    MerchantReviewModule,
    MerchantFinanceModule,
    MerchantStatisticsModule,
  ],
  controllers: [
    MerchantSellerController,
    MerchantAdminController,
  ],
  providers: [MerchantService, StatisticsService],
  exports: [MerchantService, StatisticsService],
})
export class MerchantModule {}
