package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;

/**
 * 分片上传初始化请求 VO
 *
 * @author AI Assistant
 */
@Schema(description = "管理后台 - 分片上传初始化请求")
@Data
public class MultipartUploadInitRequest {

    @Schema(description = "文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "example.zip")
    @NotBlank(message = "文件名不能为空")
    private String fileName;

    @Schema(description = "文件MIME类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "application/zip")
    @NotBlank(message = "文件类型不能为空")
    private String fileType;

    @Schema(description = "文件总大小（字节）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1073741824")
    @NotNull(message = "文件大小不能为空")
    @Positive(message = "文件大小必须大于0")
    private Long fileSize;

    @Schema(description = "分片大小（字节），默认5MB", example = "5242880")
    private Integer chunkSize = 5 * 1024 * 1024; // 默认5MB

} 