From 4c5bf30ea8a48c6c8eb2d6f4b378e67be692b9e2 Mon Sep 17 00:00:00 2001
From: "bojana.marojevikj" <bojana.marojevikj@finki.ukim.mk>
Date: Tue, 4 Mar 2025 12:25:54 +0100
Subject: [PATCH] get next week consultations by professor

---
 .../konsultacii/repository/ConsultationRepository.java      | 5 +++++
 .../service/implementation/ConsultationServiceImpl.java     | 6 +++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/main/java/mk/ukim/finki/konsultacii/repository/ConsultationRepository.java b/src/main/java/mk/ukim/finki/konsultacii/repository/ConsultationRepository.java
index ca3924c..ddbed8e 100644
--- a/src/main/java/mk/ukim/finki/konsultacii/repository/ConsultationRepository.java
+++ b/src/main/java/mk/ukim/finki/konsultacii/repository/ConsultationRepository.java
@@ -1,9 +1,11 @@
 package mk.ukim.finki.konsultacii.repository;
 
 import mk.ukim.finki.konsultacii.model.Consultation;
+import mk.ukim.finki.konsultacii.model.enumerations.ConsultationStatus;
 import mk.ukim.finki.konsultacii.model.enumerations.ConsultationType;
 import mk.ukim.finki.konsultacii.model.projections.RegularConsultationTermProjection;
 import mk.ukim.finki.konsultacii.model.projections.UserAttendanceProjection;
+import org.springframework.cglib.core.Local;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 
@@ -43,6 +45,9 @@ public interface ConsultationRepository extends JpaSpecificationRepository<Consu
 
     List<Consultation> findByProfessorId(String professorId);
 
+    List<Consultation> findByProfessorIdAndOneTimeDateBetweenAndStatus(String professorId, LocalDate startDate,
+                                                                       LocalDate endDate, ConsultationStatus status);
+
     List<Consultation> findAllByProfessor_IdAndTypeAndWeeklyDayOfWeekAndStartTimeAndEndTimeAndOneTimeDateAfter(
             String professorId,
             ConsultationType type,
diff --git a/src/main/java/mk/ukim/finki/konsultacii/service/implementation/ConsultationServiceImpl.java b/src/main/java/mk/ukim/finki/konsultacii/service/implementation/ConsultationServiceImpl.java
index cff7e54..1795eb2 100644
--- a/src/main/java/mk/ukim/finki/konsultacii/service/implementation/ConsultationServiceImpl.java
+++ b/src/main/java/mk/ukim/finki/konsultacii/service/implementation/ConsultationServiceImpl.java
@@ -83,7 +83,11 @@ public class ConsultationServiceImpl implements ConsultationService {
     public List<ConsultationResponseDto> getConsultationsByProfessor(String professorId) {
         DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
 
-        return consultationRepository.findByProfessorId(professorId)
+        LocalDate today = LocalDate.now();
+        LocalDate nextWeek = today.plusWeeks(1);
+
+        return consultationRepository.findByProfessorIdAndOneTimeDateBetweenAndStatus(professorId, today,
+                        nextWeek, ConsultationStatus.ACTIVE)
                 .stream()
                 .map(consultation -> {
                     var startDateTime = consultation.getOneTimeDate().atTime(consultation.getStartTime());
-- 
GitLab