From ffabff23c199bbf81db6c605816d4a45f568a7d8 Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Sat, 13 Jan 2024 17:30:56 -0300 Subject: [PATCH] [R9] Find one free doctor by specialty use case class --- .../FindOneFreeDoctorBySpecialtyUseCase.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/com/mirna/hospitalmanagementapi/application/usecase/doctor/FindOneFreeDoctorBySpecialtyUseCase.java diff --git a/src/main/java/com/mirna/hospitalmanagementapi/application/usecase/doctor/FindOneFreeDoctorBySpecialtyUseCase.java b/src/main/java/com/mirna/hospitalmanagementapi/application/usecase/doctor/FindOneFreeDoctorBySpecialtyUseCase.java new file mode 100644 index 0000000..d7c96b9 --- /dev/null +++ b/src/main/java/com/mirna/hospitalmanagementapi/application/usecase/doctor/FindOneFreeDoctorBySpecialtyUseCase.java @@ -0,0 +1,35 @@ +package com.mirna.hospitalmanagementapi.application.usecase.doctor; + +import java.time.LocalDateTime; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.mirna.hospitalmanagementapi.domain.entities.Doctor; +import com.mirna.hospitalmanagementapi.domain.enums.Specialty; +import com.mirna.hospitalmanagementapi.domain.repositories.DoctorRepository; + +/** + * This class is used to execute the findOneFreeDoctorBySpecialty method + * + * @author Mirna Gama + * @version 1.0 + */ +@Component +public class FindOneFreeDoctorBySpecialtyUseCase { + + @Autowired + private DoctorRepository doctorRepository; + + /** + * Executes the findOneFreeDoctorBySpecialty method from Doctor repository + * + * @param specialty Desired specialty for doctor search + * @param consultationDate Date to check if the doctor is free + * @return A random free doctor with the defined specialty if successful, or null if it is non-existent + * + */ + public Doctor execute(Specialty specialty, LocalDateTime consultationDate) { + return doctorRepository.findOneFreeDoctorBySpecialty(specialty, consultationDate); + } +}