Files
no-copy/src/main/java/ru/soune/nocopy/dto/file/UploadProgressResponse.java
T

39 lines
1.2 KiB
Java
Raw Normal View History

2025-12-17 13:41:05 +07:00
package ru.soune.nocopy.dto.file;
2025-12-15 19:49:09 +07:00
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
2025-12-17 13:41:05 +07:00
import ru.soune.nocopy.entity.file.FileUploadSession;
import ru.soune.nocopy.entity.file.UploadStatus;
2025-12-15 19:49:09 +07:00
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UploadProgressResponse {
private String uploadId;
private String fileName;
private Integer totalChunks;
private Integer uploadedChunks;
private UploadStatus status;
private Integer progressPercentage;
private String filePath;
public static UploadProgressResponse fromSession(FileUploadSession session) {
int progress = session.getTotalChunks() == 0 ? 0 :
(session.getChunksUploaded() * 100) / session.getTotalChunks();
return UploadProgressResponse.builder()
.uploadId(session.getUploadId())
.fileName(session.getFileName())
.totalChunks(session.getTotalChunks())
.uploadedChunks(session.getChunksUploaded())
.status(session.getStatus())
.progressPercentage(progress)
.filePath(session.getFilePath())
.build();
}
}