package cn.iocoder.yudao.module.hrm.controller.admin.training.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @Schema(description = "管理后台 - HRM 培训活动新增/修改 Request VO") @Data public class HrmTrainingSaveReqVO { @Schema(description = "编号(修改时必填)", example = "1") private Long id; @Schema(description = "培训名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "2026年度电力安全培训") @NotEmpty(message = "培训名称不能为空") private String name; @Schema(description = "培训类型(1=安全培训,2=技能培训,3=管理培训,4=其他)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "培训类型不能为空") private Integer trainingType; @Schema(description = "讲师", example = "张工") private String trainer; @Schema(description = "培训地点", example = "安全培训室") private String location; @Schema(description = "培训学时", example = "8") private BigDecimal hours; @Schema(description = "开始日期") private LocalDate startDate; @Schema(description = "结束日期") private LocalDate endDate; @Schema(description = "是否自动发证(0=否,1=是;仅安全/技能培训支持)", example = "true") private Boolean issueCertificate; @Schema(description = "证书有效期(月),自动发证时必填,用于计算证书到期日", example = "12") private Integer certValidityMonths; @Schema(description = "备注", example = "年度例行培训") private String remark; }