Files
edr-platform/apps/edr-hr-api/src/modules/attendance/attendance.module.ts
2026-08-25 00:11:39 +03:00

72 lines
2.5 KiB
TypeScript

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 {}