import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Student } from '../entities/student.entity';
import { Class } from '../entities/class.entity';
import { Organization } from '../entities/organization.entity';
import { ClassStudent } from '../entities/class-student.entity';
import { AttendanceRecord } from '../entities/attendance-record.entity';
import { ClassTeacher } from '../entities/class-teacher.entity';
import { StudentProfile } from '../entities/student-profile.entity';
import { StudentEnrollment } from '../entities/student-enrollment.entity';
import { ExamScore } from '../entities/exam-score.entity';
import { LearningRecord } from '../entities/learning-record.entity';
import { ResultArchive } from '../entities/result-archive.entity';
import { StudentsService } from './students.service';
import { StudentAccessScopeFactory } from './student-access-scope.factory';
import { StudentsController } from './students.controller';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      Student,
      Class,
      ClassStudent,
      AttendanceRecord,
      Organization,
      ClassTeacher,
      StudentProfile,
      StudentEnrollment,
      ExamScore,
      LearningRecord,
      ResultArchive,
    ]),
  ],
  controllers: [StudentsController],
  providers: [StudentsService, StudentAccessScopeFactory],
  exports: [StudentsService, StudentAccessScopeFactory],
})
export class StudentsModule {}
