package jnpf.dmsEntity.storage.form; import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; import lombok.Data; import java.util.Date; import java.util.UUID; @Data public class DmsFileLifecycleUpdateForm { @NotBlank(message = "租户ID不能为空") @Size(max = 50, message = "租户ID长度不能超过50") private String tenantId; @NotNull(message = "文件中心版本ID不能为空") private UUID fileVersionId; @NotBlank(message = "生命周期状态不能为空") @Pattern(regexp = "EXPIRED", message = "到期同步仅支持EXPIRED状态") private String lifecycleStatus; /** Compatibility field only. The persisted effective start is authoritative. */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai", lenient = com.fasterxml.jackson.annotation.OptBoolean.FALSE) private Date effectiveFrom; /** Optional expected deadline; a stale deadline is rejected after locking the document. */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai", lenient = com.fasterxml.jackson.annotation.OptBoolean.FALSE) private Date effectiveTo; @Size(max = 1000, message = "状态原因长度不能超过1000") private String statusReason; }