package cn.iocoder.yudao.module.member.controller.admin.level.vo.level; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.validation.InEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.hibernate.validator.constraints.Range; import org.hibernate.validator.constraints.URL; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Positive; /** * 会员等级 Base VO,提供给添加、修改、详细的子 VO 使用 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 */ @Data public class MemberLevelBaseVO { @Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotBlank(message = "等级名称不能为空") private String name; @Schema(description = "升级经验", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") @NotNull(message = "升级经验不能为空") @Positive(message = "升级经验必须大于 0") private Integer experience; @Schema(description = "等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "等级不能为空") @Positive(message = "等级必须大于 0") private Integer level; @Schema(description = "享受折扣", requiredMode = Schema.RequiredMode.REQUIRED, example = "98") @NotNull(message = "享受折扣不能为空") @Range(min = 0, max = 100, message = "享受折扣的范围为 0-100") private Integer discountPercent; @Schema(description = "等级图标", example = "https://www.iocoder.cn/yudao.jpg") @URL(message = "等级图标必须是 URL 格式") private String icon; @Schema(description = "等级背景图", example = "https://www.iocoder.cn/yudao.jpg") @URL(message = "等级背景图必须是 URL 格式") private String backgroundUrl; @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "状态不能为空") @InEnum(CommonStatusEnum.class) private Integer status; }