import { Module, forwardRef } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import {
  ProgramUserAttendance,
  ProgramSession,
  ProgramRegistration,
} from 'src/common/entities';
import { AuthModule } from 'src/auth/auth.module';
import { UserModule } from 'src/user/user.module';
import { ExcelService } from 'src/common/services/excel.service';
import { AwsS3Service } from 'src/common/services/awsS3.service';
import { OnlineAttendanceController } from './online-attendance.controller';
import { OnlineAttendanceService } from './online-attendance.service';
import { OnlineAttendanceRepository } from './online-attendance.repository';

@Module({
  imports: [
    TypeOrmModule.forFeature([ProgramUserAttendance, ProgramSession, ProgramRegistration]),
    forwardRef(() => AuthModule),
    forwardRef(() => UserModule),
  ],
  controllers: [OnlineAttendanceController],
  providers: [
    OnlineAttendanceService,
    OnlineAttendanceRepository,
    ExcelService,
    AwsS3Service,
  ],
  exports: [OnlineAttendanceService],
})
export class OnlineAttendanceModule {}
