package ru.soune.nocopy.service.file; import org.springframework.web.multipart.MultipartFile; import ru.soune.nocopy.dto.file.UploadProgressResponse; import ru.soune.nocopy.entity.file.FileUploadSession; import java.io.IOException; public interface FileUploadService { FileUploadSession initUpload(Long userId, String fileName, String fileType, String extension, long fileSize); UploadProgressResponse uploadChunk(String uploadId, Integer chunkNumber, MultipartFile chunkFile) throws IOException; UploadProgressResponse getUploadProgress(String uploadId); void cleanupExpiredSessions(); public void retryFailedUpload(String uploadId); public void cancelUpload(String uploadId); }