import { Module } from "@nestjs/common"; import { TypeOrmModule } from "@nestjs/typeorm"; import { WorkSchedule } from "./entities/work-schedule.entity"; import { WorkScheduleAssignment } from "./entities/work-schedule-assignment.entity"; import { AttendanceRecord } from "./entities/attendance-record.entity"; import { AttendanceRegularization } from "./entities/attendance-regularization.entity"; import { OvertimeRate, OvertimeRequest } from "./entities/overtime.entity"; import { WorkScheduleAssignmentsRepository, WorkSchedulesRepository, } from "./repositories/work-schedules.repository"; import { AttendanceRepository } from "./repositories/attendance.repository"; import { WorkSchedulesService } from "./services/work-schedules.service"; import { AttendanceService } from "./services/attendance.service"; import { AttendanceDayService } from "./services/attendance-day.service"; import { OvertimeService } from "./services/overtime.service"; import { RegularizationsService } from "./services/regularizations.service"; import { WorkSchedulesController } from "./controllers/work-schedules.controller"; import { AttendanceController } from "./controllers/attendance.controller"; import { OvertimeController } from "./controllers/overtime.controller"; import { RegularizationsController } from "./controllers/regularizations.controller"; import { LeaveModule } from "../leave/leave.module"; import { EmployeesModule } from "../employees/employees.module"; /** * Module 3.3 slice 1. * * Depends on LeaveModule rather than re-deriving the calendar: the working week, * the holidays and approved leave all live there, and a second implementation * would eventually disagree with the first about whether a given day was * workable. */ @Module({ imports: [ TypeOrmModule.forFeature([ WorkSchedule, WorkScheduleAssignment, AttendanceRecord, AttendanceRegularization, OvertimeRate, OvertimeRequest, ]), LeaveModule, EmployeesModule, ], controllers: [ WorkSchedulesController, AttendanceController, OvertimeController, RegularizationsController, ], providers: [ WorkSchedulesRepository, WorkScheduleAssignmentsRepository, AttendanceRepository, WorkSchedulesService, AttendanceService, AttendanceDayService, OvertimeService, RegularizationsService, ], // Payroll (3.4) prices overtime and absence from these records. exports: [ AttendanceService, WorkSchedulesService, AttendanceRepository, OvertimeService, ], }) export class AttendanceModule {}