package net.gepafin.tendermanagement.service.impl; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.dao.CompanyDocumentDao; import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.enums.CompanyDocumentTypeEnum; import net.gepafin.tendermanagement.enums.DocumentTypeEnum; import net.gepafin.tendermanagement.model.request.CompanyDocumentRequest; import net.gepafin.tendermanagement.model.response.CompanyDocumentResponseBean; import net.gepafin.tendermanagement.model.response.DocumentResponseBean; import net.gepafin.tendermanagement.service.CompanyDocumentService; import net.gepafin.tendermanagement.util.Utils; import net.gepafin.tendermanagement.util.Validator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @Service public class CompanyDocumentServiceImpl implements CompanyDocumentService { @Autowired private Validator validator; @Autowired private CompanyDocumentDao companyDocumentDao; @Override public List uploadFileForCompany(HttpServletRequest request, List files, Long companyId, Long documentCategoryId , CompanyDocumentTypeEnum documentSourceTypeEnum, LocalDateTime expirationDate,String name) { Map userInfo = validator.getUserInfoFromToken(request); Long userId = validator.getUserId(userInfo); files.forEach(Utils::validateFileType); validator.validateUserWithCompany(request,companyId); return companyDocumentDao.uploadFileForCompany(userId,files,companyId,documentCategoryId,documentSourceTypeEnum,expirationDate,name); } @Override public CompanyDocumentResponseBean updateCompanyDocument(HttpServletRequest request, Long companyDocumentId, CompanyDocumentRequest companyDocumentRequest) { validator.validateUser(request); return companyDocumentDao.updateCompanyDocument(request,companyDocumentId, companyDocumentRequest); } @Override public CompanyDocumentResponseBean getCompanyDocument(HttpServletRequest request, Long companyDocumentId) { UserEntity user = validator.validateUser(request); return companyDocumentDao.getCompanyDocument(user , companyDocumentId); } @Override public void deleteCompanyFile(HttpServletRequest request,Long companyDocumentId) { validator.validateUser(request); companyDocumentDao.deleteCompanyFile(companyDocumentId); } @Override public DocumentResponseBean createDuplicateCompanyDocument(HttpServletRequest request, Long companyDocumentId, Long applicationId, DocumentTypeEnum typeEnum) { UserEntity user = validator.validateUser(request); return companyDocumentDao.createDuplicateCompanyDocument(request, user.getId(), companyDocumentId,applicationId,typeEnum); } @Override public List getAllCompanyDocument(HttpServletRequest request, Long companyId, CompanyDocumentTypeEnum typeEnum) { UserEntity user = validator.validateUser(request); return companyDocumentDao.getAllCompanyDocument(user,companyId,typeEnum); } }