package ru.soune.nocopy.dto.file;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import ru.soune.nocopy.entity.file.FileStatus;
import ru.soune.nocopy.entity.file.permission.PermissionType;

import java.time.LocalDateTime;
import java.util.Map;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FileEntityResponse {

    private String id;
    private Long userId;
    private String originalFileName;
    private String storedFileName;
    private String filePath;
    private String protectedFilePath;
    private String thumbnailFileUrl;
    private Long fileSize;
    private String mimeType;
    private String fileExtension;
    private String checksum;
    private String uploadSessionId;
    private FileStatus status;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
    private String formattedSize;
    private String downloadUrl;
    private boolean existsOnDisk;
    private Integer supportId;
    private String protectStatus;
    private String ownerName;
    private String ownerEmail;
    private String ownerCompany;
    private String fileName;
    private String fileFormat;
    private Integer checksCount;
    private LocalDateTime fileUploadDate;
    private String monitoring;
    private Map<PermissionType, Boolean> permissions;
}
