package com.guo.learningprogresstracker.dto.request; import com.guo.learningprogresstracker.common.Ops; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Null; import lombok.Data; /** * 学习任务-请求参数-创建 */ @Data public class TaskRequest { public interface Create{} @Null(message = "创建时不可指定任务ID",groups = Ops.CreateG.class) @NotNull(message = "更新时必须指定任务ID",groups = Ops.UpdateG.class) private Integer id; /** * 学习任务的名称 */ @NotEmpty(message = "必须指定非空的任务名称", groups = Ops.CreateG.class) private String taskName; /** * 学习材料的存储URL */ private String materialUrl; /** * 用户设置的任务紧急性 */ @NotNull(message = "必须指定【任务紧急性】指标", groups = Ops.CreateG.class) @Min(value = 0,message = "urgency参数值必须大于等于0") @Max(value = 5,message = "urgency参数值必须小于等于5") private Integer urgency; /** * 用户设置的任务重要性 */ @NotNull(message = "必须指定【任务重要性】指标", groups = Ops.CreateG.class) @Min(value = 0,message = "importance参数值必须大于等于0") @Max(value = 5,message = "importance参数值必须小于等于5") private Integer importance; /** * 任务的内容难度 */ @NotNull(message = "必须指定【内容难度】指标", groups = Ops.CreateG.class) @Min(value = 0,message = "contentDifficulty参数值必须大于等于0") @Max(value = 5,message = "contentDifficulty参数值必须小于等于5") private Integer contentDifficulty; /** * 任务的未来价值 */ @NotNull(message = "必须指定【未来价值】指标", groups = Ops.CreateG.class) @Min(value = 0,message = "futureValue参数值必须大于等于0") @Max(value = 5,message = "futureValue参数值必须小于等于5") private Integer futureValue; /** * 用户对任务的主观优先级 */ @NotNull(message = "必须指定【主观优先级】指标", groups = Ops.CreateG.class) @Min(value = 0,message = "subjectivePriority参数值必须大于等于0") @Max(value = 5,message = "subjectivePriority参数值必须小于等于5") private Integer subjectivePriority; }