package com.talentcard.server.request; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; @Schema(name = "CouponManagementSaveRequest", description = "\u4f18\u60e0\u5238\u914d\u7f6e\u4fdd\u5b58\u53c2\u6570") public record CouponManagementSaveRequest( @NotNull @Schema(description = "\u9002\u7528\u5546\u6237ID", example = "1") Long merchantId, @NotBlank @Size(max = 128) @Schema(description = "\u4f18\u60e0\u5238\u540d\u79f0") String couponName, @NotBlank @Schema(description = "\u7c7b\u578b\uff1aCASH\u4ee3\u91d1\u5238\u3001FULL_REDUCTION\u6ee1\u51cf\u5238\u3001DISCOUNT\u6298\u6263\u5238\u3001EXCHANGE\u5151\u6362\u5238") String couponType, @NotNull @DecimalMin("0.00") @Schema(description = "\u9762\u989d\uff0c\u5355\u4f4d\u5143", example = "50.00") BigDecimal couponAmount, @Schema(description = "\u4f7f\u7528\u6761\u4ef6\uff1aNONE\u65e0\u95e8\u69db\u3001FULL\u6ee1\u51cf") String conditionType, @DecimalMin("0.00") @Schema(description = "\u6ee1\u51cf\u95e8\u69db\u91d1\u989d") BigDecimal conditionAmount, @Schema(description = "\u9002\u7528\u4eba\u624d\u5361\u7b49\u7ea7") List talentLevels, @Schema(description = "\u6709\u6548\u5f00\u59cb\u65e5\u671f") LocalDate validStart, @Schema(description = "\u6709\u6548\u7ed3\u675f\u65e5\u671f") LocalDate validEnd, @Size(max = 64) @Schema(description = "\u53d1\u653e\u6279\u6b21\u53f7\uff0c\u4e0d\u4f20\u81ea\u52a8\u751f\u6210") String batchNo, @NotNull @Min(-1) @Schema(description = "\u53d1\u653e\u603b\u91cf\uff0c-1\u8868\u793a\u4e0d\u9650\u91cf", example = "1000") Integer totalQuantity, @Schema(description = "\u662f\u5426\u653f\u5e9c\u8865\u8d34") Boolean governmentSubsidy, @Schema(description = "\u72b6\u6001\uff1a0\u4e0b\u67b6\u30011\u4e0a\u67b6", example = "1") Integer status ) {}