
export interface ChunkDto {
    chunkNumber: number;
    currentChunkSize: number;
    totalSize: number;
    identifier: string;
    filename: string;
    totalChunks: number;
    checksum?: string; // Optional client-side checksum
}
export interface UploadProgress {
    identifier: string;
    percentage: number
    uploadedSize: number
    totalSize: number
    speed: number
    remainingTime: number; // in seconds
};
export type UploadStatus = 'pending' | 'uploading' | 'paused' | 'completed' | 'error';

export interface UploadStatusInfo {
    identifier: string;
    filename: string;
    totalSize: number;
    uploadedSize: number;
    status: UploadStatus;
    chunks: Set<number>
    startTime: number
    hash?: string
    lastUpdateTime: number
    error?: string
    progress?: UploadProgress
}
export type UploadLockInfo = {
    isLocked: boolean
    lockedBy?: string
}
export type UploadStatusInfoDto = UploadStatusInfo & UploadLockInfo
