package jnpf.dmsEntity.storage.form; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.validation.Valid; import jakarta.validation.constraints.AssertTrue; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.util.Date; import java.util.List; import java.util.UUID; @Data public class DmsFileExtendValidityForm { private String sourceId; private String taskId; @Valid @NotEmpty(message = "文件请求列表不能为空") private List<@NotNull(message = "文件请求不能为空") FileRequest> files; @JsonIgnore @AssertTrue(message = "sourceId和taskId必须同时提供或同时为空") public boolean isWorkflowPairValid() { return isBlank(sourceId) == isBlank(taskId); } private boolean isBlank(String value) { return value == null || value.trim().isEmpty(); } @Data public static class FileRequest { @NotNull(message = "文件中心版本ID不能为空") private UUID fileVersionId; @NotNull(message = "有效期至不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai", lenient = com.fasterxml.jackson.annotation.OptBoolean.FALSE) private Date effectiveTo; } }