blob: 211979b9968e5d258c7377db814548659c3ab793 [file] [log] [blame]
2230111590135d72025-06-03 17:11:40 +08001package com.example.myproject.dto;
2
3import lombok.Data;
4import javax.validation.constraints.*;
5import java.time.LocalDateTime;
6import java.util.List;
7
8@Data
9public class PromotionCreateDTO {
10 @NotBlank(message = "促销名称不能为空")
11 @Size(max = 100, message = "促销名称长度不能超过100个字符")
12 private String name;
13
14 @Size(max = 500, message = "描述长度不能超过500个字符")
15 private String description;
16
17 @NotNull(message = "开始时间不能为空")
18 private LocalDateTime startTime;
19
20 @NotNull(message = "结束时间不能为空")
21 private LocalDateTime endTime;
22
23 @NotNull(message = "折扣比例不能为空")
24 @Min(value = 0, message = "折扣比例不能小于0")
25 @Max(value = 100, message = "折扣比例不能大于100")
26 private double discountPercentage;
27
28 @NotEmpty(message = "适用种子列表不能为空")
29 private List<Long> applicableTorrentIds;
30
31 @AssertTrue(message = "结束时间必须晚于开始时间")
32 public boolean isEndTimeAfterStartTime() {
33 return endTime != null && startTime != null && endTime.isAfter(startTime);
34 }
35}