package cn.iocoder.yudao.module.archive.api.document.dto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.time.LocalDate; import java.util.List; @Schema(description = "RPC 服务 - 档案归档 Request DTO") @Data public class ArchiveDocumentCreateReqDTO { @Schema(description = "来源类型:2-课题 3-会员 4-财务", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "来源类型不能为空") private Integer sourceType; @Schema(description = "来源单据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "来源单据编号不能为空") private Long sourceId; @Schema(description = "来源单号(课题立项编号/会员编号/报销单号)", example = "LX20260929000001") private String sourceNo; @Schema(description = "来源单据标题", example = "XX技术研究课题") private String sourceTitle; @Schema(description = "目标档案分类编码(research/member/finance)", requiredMode = Schema.RequiredMode.REQUIRED, example = "research") @NotEmpty(message = "目标档案分类编码不能为空") private String categoryCode; @Schema(description = "档案标题,为空时取来源单据标题") private String title; @Schema(description = "密级:1-公开 2-内部 3-保密,为空时取分类默认密级") private Integer secretLevel; @Schema(description = "摘要") private String summary; @Schema(description = "关键词,英文逗号分隔") private String tags; @Schema(description = "来源附件 BlobId 列表") private List blobIds; @Schema(description = "归档日期,为空时取当天") private LocalDate archiveDate; @Schema(description = "备注") private String remark; }