import { Module, forwardRef } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { QrAttendanceController } from './qr-attendance.controller';
import { QrAttendanceService } from './qr-attendance.service';
import { QrAttendanceRepository } from './qr-attendance.repository';
import { ProgramUserAttendance, ProgramRegistration, BackgroundJob, ProgramSession } from 'src/common/entities';
import { AppLoggerService } from 'src/common/services/logger.service';
import { AwsS3Service } from 'src/common/services/awsS3.service';
import { ExcelService } from 'src/common/services/excel.service';
import { ResponseService } from 'src/common/response-handling/response-handler';
import { AuthModule } from 'src/auth/auth.module';
import { UserModule } from 'src/user/user.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([ProgramUserAttendance, ProgramRegistration, BackgroundJob, ProgramSession]),
    forwardRef(() => AuthModule),
    forwardRef(() => UserModule),
  ],
  controllers: [QrAttendanceController],
  providers: [QrAttendanceService, QrAttendanceRepository, AppLoggerService, AwsS3Service, ExcelService, ResponseService],
  exports: [QrAttendanceService, QrAttendanceRepository],
})
export class QrAttendanceModule {}
