diff --git a/src/main/java/dmu/dasom/api/domain/interview/service/InterviewService.java b/src/main/java/dmu/dasom/api/domain/interview/service/InterviewService.java index 4f7c278..94f42be 100644 --- a/src/main/java/dmu/dasom/api/domain/interview/service/InterviewService.java +++ b/src/main/java/dmu/dasom/api/domain/interview/service/InterviewService.java @@ -22,5 +22,6 @@ public interface InterviewService { // 면접 예약 취소 void cancelReservation(Long reservationId, Long applicantId); + List getAllInterviewSlots(); } diff --git a/src/main/java/dmu/dasom/api/domain/interview/service/InterviewServiceImpl.java b/src/main/java/dmu/dasom/api/domain/interview/service/InterviewServiceImpl.java index 3dfe8b2..93d7006 100644 --- a/src/main/java/dmu/dasom/api/domain/interview/service/InterviewServiceImpl.java +++ b/src/main/java/dmu/dasom/api/domain/interview/service/InterviewServiceImpl.java @@ -131,5 +131,13 @@ public void cancelReservation(Long reservationId, Long applicantId) { // 예약 삭제 interviewReservationRepository.delete(reservation); } + + @Override + public List getAllInterviewSlots() { + return interviewSlotRepository.findAll() + .stream() + .map(InterviewSlotResponseDto::new) + .toList(); + } } diff --git a/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java b/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java index 463a0a1..cebfb82 100644 --- a/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java +++ b/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java @@ -110,5 +110,22 @@ public ResponseEntity reserveInterviewSlot(@Valid @RequestBody InterviewRe return ResponseEntity.ok().build(); } + // 예약 가능한 면접 일정 조회 + @Operation(summary = "예약 가능한 면접 일정 조회", description = "예약 가능한 면접 슬롯 목록을 조회합니다.") + @ApiResponse(responseCode = "200", description = "예약 가능한 면접 슬롯 조회 성공") + @GetMapping("/interview/available") + public ResponseEntity> getAvailableInterviewSlots() { + List availableSlots = interviewService.getAvailableSlots(); + return ResponseEntity.ok(availableSlots); + } + + // 모든 면접 일정 조회 + @Operation(summary = "모든 면접 일정 조회", description = "모든 면접 슬롯 목록을 조회합니다.") + @ApiResponse(responseCode = "200", description = "모든 면접 슬롯 조회 성공") + @GetMapping("/interview/all") + public ResponseEntity> getAllInterviewSlots() { + List allSlots = interviewService.getAllInterviewSlots(); + return ResponseEntity.ok(allSlots); + } }