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.NotEmpty;
import java.util.List;

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

    @Schema(description = "分片上传会话ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3d8b7f2a-1234-5678-9abc-def012345678")
    @NotBlank(message = "上传会话ID不能为空")
    private String uploadId;

    @Schema(description = "分片信息列表", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "分片信息不能为空")
    private List<PartInfo> parts;

    @Schema(description = "分片信息")
    @Data
    public static class PartInfo {

        @Schema(description = "分片编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
        private Integer partNumber;

        @Schema(description = "分片ETag", requiredMode = Schema.RequiredMode.REQUIRED, example = "\"d41d8cd98f00b204e9800998ecf8427e\"")
        private String etag;

    }

} 