package net.gepafin.tendermanagement.service.impl; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.dao.AssignedApplicationsDao; import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity; import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest; import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest; import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse; import net.gepafin.tendermanagement.service.AssignedApplicationsService; import net.gepafin.tendermanagement.util.Validator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service public class AssignedApplicationsServiceImpl implements AssignedApplicationsService { @Autowired private Validator validator; @Autowired private AssignedApplicationsDao assignedApplicationsDao; @Override @Transactional(rollbackFor = Exception.class) public AssignedApplicationsResponse createAssignedApplications(HttpServletRequest request, Long applicationId, Long userId, AssignedApplicationsRequest assignedApplicationsRequest) { UserEntity assignedByUser= validator.validateUser(request); validator.validatePreInstructor(request, userId); return assignedApplicationsDao.createAssignedApplications(applicationId,userId,assignedByUser, assignedApplicationsRequest); } @Override @Transactional(rollbackFor = Exception.class) public void deleteApplication(HttpServletRequest request, Long id) { assignedApplicationsDao.deleteById(request, id); } @Override @Transactional(readOnly = true) public List getAllAssignedApplications(HttpServletRequest request, Long userId) { return assignedApplicationsDao.getAllAssignedApplications(request, userId); } @Override @Transactional(rollbackFor = Exception.class) public AssignedApplicationsResponse updateAssignedApplication(HttpServletRequest request, Long id, UpdateAssignedApplicationRequest updatedAssignedApplicationRequest) { return assignedApplicationsDao.updateAssignedApplication(request, id, updatedAssignedApplicationRequest); } @Override @Transactional(readOnly = true) public AssignedApplicationsResponse getAssignedApplicationById(HttpServletRequest request, Long id) { return assignedApplicationsDao.getAssignedApplicationById(request, id); } @Override public AssignedApplicationsEntity validateAssignedApplication(Long assignedApplicationId) { return assignedApplicationsDao.validateAssignedApplication(assignedApplicationId); } }