import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';

import { TrainScheduleBooking } from './entities/train-schedule-booking.entity';
import { TrainSchedule } from './entities/train-schedule.entity';
import { TrainCompositionRemovalLog } from './entities/train-composition-removal-log.entity';
import { WagonAllocationBulkLoad } from './entities/wagon-allocation-bulk-load.entity';
import { WagonAllocationContainerItem } from './entities/wagon-allocation-container-item.entity';
import { WagonBookingAllocation } from './entities/wagon-booking-allocation.entity';
import { TrainScheduleBookingsRepository } from './train-schedule-bookings.repository';
import { TrainSchedulesRepository } from './train-schedules.repository';
import { TrainCompositionRemovalLogRepository } from './train-composition-removal-log.repository';
import { WagonAllocationBulkLoadsRepository } from './wagon-allocation-bulk-loads.repository';
import { WagonAllocationContainerItemsRepository } from './wagon-allocation-container-items.repository';
import { WagonBookingAllocationsRepository } from './wagon-booking-allocations.repository';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      TrainSchedule,
      TrainScheduleBooking,
      TrainCompositionRemovalLog,
      WagonBookingAllocation,
      WagonAllocationContainerItem,
      WagonAllocationBulkLoad,
    ]),
  ],
  providers: [
    TrainSchedulesRepository,
    TrainScheduleBookingsRepository,
    TrainCompositionRemovalLogRepository,
    WagonBookingAllocationsRepository,
    WagonAllocationContainerItemsRepository,
    WagonAllocationBulkLoadsRepository,
  ],
  exports: [
    TrainSchedulesRepository,
    TrainScheduleBookingsRepository,
    TrainCompositionRemovalLogRepository,
    WagonBookingAllocationsRepository,
    WagonAllocationContainerItemsRepository,
    WagonAllocationBulkLoadsRepository,
  ],
})
export class TrainSchedulesModule {}
