package cn.iocoder.yudao.module.archive.controller.admin.document.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; @Schema(description = "管理后台 - 档案新增/修改 Request VO") @Data public class ArchiveDocumentSaveReqVO { @Schema(description = "编号", example = "1") private Long id; @Schema(description = "档案标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "2026年度学会工作总结") @NotEmpty(message = "档案标题不能为空") private String title; @Schema(description = "档案分类 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "档案分类不能为空") private Long categoryId; @Schema(description = "密级:1-公开 2-内部 3-保密,为空时取分类默认密级", example = "2") private Integer secretLevel; @Schema(description = "载体:1-电子 2-实体 3-电子+实体,为空时取默认值 3", example = "3") private Integer carrierType; @Schema(description = "实体-书架号", example = "A") private String shelfNo; @Schema(description = "实体-层号", example = "2") private String layerNo; @Schema(description = "实体-列号", example = "3") private String columnNo; @Schema(description = "实体-册号/档案盒号", example = "B-03") private String boxNo; @Schema(description = "实体存放位置描述", example = "3号库房A架2层") private String storePlace; @Schema(description = "归档日期,为空时取当天", example = "2026-09-29") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDate archiveDate; @Schema(description = "摘要", example = "2026年度学会工作总结及下一年度计划") private String summary; @Schema(description = "关键词,英文逗号分隔", example = "工作总结,年度计划") private String tags; @Schema(description = "备注") private String remark; @Schema(description = "附件 BlobId 列表") private List blobIds; }