package org.springblade.file.pojo.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 *  文件任务创建对象
 * @author bfhuange
 * @date 2024/10/22
 */
@Data
@Schema(description = "文件任务创建对象")
public class FileTaskCreateDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *  Md5
     */
    @NotBlank(message = "Md5不能为空")
    @Schema(description = "Md5")
    private String md5;

    /**
     * 附件名
     */
    @NotBlank(message = "附件名不能为空")
    @Schema(description = "附件名")
    private String attachmentName;

    /**
     * 附件大小(单位:B)
     */
    @NotNull(message = "附件大小不能为空")
    @Schema(description = "附件大小(单位:B)")
    private Long size;

    /**
     *  分段大小
     */
    @NotNull(message = "分段大小不能为空")
    @Schema(description = "分段大小")
    private Integer chunkSize;

    /**
     *  分段数量
     */
    @NotNull(message = "分段数量不能为空")
    @Schema(description = "分段数量")
    private Integer chunkTotal;

    /**
     *  是否强制创建新任务，默认 false，如果存在相同md5的任务，会创建失败，true则新创建一个任务
     */
    @Schema(description = "是否强制创建新任务，默认 false，如果存在相同md5的任务，会创建失败，true则新创建一个任务")
    private boolean force;
}
