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.AssignedApplicationPageableRequestBean; import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum; import net.gepafin.tendermanagement.enums.AssignedApplicationEnum; import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest; import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest; import net.gepafin.tendermanagement.model.response.AssignedApplicationViewResponse; import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse; import net.gepafin.tendermanagement.model.response.PageableResponseBean; 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,List statusList) { return assignedApplicationsDao.getAllAssignedApplications(request, userId,statusList); } @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); } @Override public PageableResponseBean> getAllAssignedApplicationsByPagination(HttpServletRequest request, Long userId, AssignedApplicationPageableRequestBean assignedApplicationPageableRequestBean) { UserEntity user=validator.validateUser(request); return assignedApplicationsDao.getAllAssignedApplicationsByPagination(user,assignedApplicationPageableRequestBean,userId); } @Override public AssignedApplicationsResponse updateAssignedApplicationStatus(HttpServletRequest request, Long assignedApplicationId, AssignedApplicationEnum status) { return assignedApplicationsDao.updateAssignedApplicationStatus(request, assignedApplicationId, status); } }