package net.gepafin.tendermanagement.service; import net.gepafin.tendermanagement.entities.DocumentEntity; import net.gepafin.tendermanagement.entities.UserCompanyDelegationEntity; import net.gepafin.tendermanagement.enums.DocOtherSourceTypeEnum; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import net.gepafin.tendermanagement.model.response.UploadFileOnAmazonS3Response; import java.io.IOException; import java.io.InputStream; @Component public interface AmazonS3Service { UploadFileOnAmazonS3Response uploadFileOnAmazonS3(String s3Folder, MultipartFile file); Boolean delete(String s3Folder, String filePath); InputStream getFile(String s3Folder, String filePath) throws IOException; String generateS3PathForDeletedDocument(DocOtherSourceTypeEnum typeOfDocument, Long callId, Long applicationId,Long amendmentId); String generateS3PathForDeletedDocumentForOther(); void moveFile(String bucketName, String oldPath, String newPath); void deleteDelegationfromS3(UserCompanyDelegationEntity userCompanyDelegationEntity); void deleteFileFromS3(DocumentEntity documentEntity, Long callId, Long applicationId,Long amendmentId); }