import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { MaintenanceSchedule } from './entities/maintenance-schedule.entity';
import { MaintenanceCost } from './entities/maintenance-cost.entity';
import { MaintenanceInterval } from './entities/maintenance-interval.entity';
import { WorkOrder } from './entities/work-order.entity';
import { Part } from './entities/part.entity';
import { Warranty } from './entities/warranty.entity';
import { MaintenanceService } from './maintenance.service';
import { MaintenanceDepthService } from './maintenance-depth.service';
import { MaintenanceRepository } from './maintenance.repository';
import { MaintenanceIntervalRepository } from './maintenance-interval.repository';
import { WorkOrderRepository } from './work-order.repository';
import { PartRepository } from './part.repository';
import { WarrantyRepository } from './warranty.repository';
import { MaintenanceController } from './maintenance.controller';
import { NotificationInboxModule } from '../notification-inbox/notification-inbox.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      MaintenanceSchedule,
      MaintenanceCost,
      MaintenanceInterval,
      WorkOrder,
      Part,
      Warranty,
    ]),
    NotificationInboxModule,
  ],
  providers: [
    MaintenanceService,
    MaintenanceDepthService,
    MaintenanceRepository,
    MaintenanceIntervalRepository,
    WorkOrderRepository,
    PartRepository,
    WarrantyRepository,
  ],
  controllers: [MaintenanceController],
  exports: [MaintenanceService, MaintenanceDepthService],
})
export class MaintenanceModule {}
