package com.ruoyi.ss.vipOrder.domain.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 会员下单DTO
 * @author wjh
 * 2025/1/17
 */
@Data
public class AddPayVipOrderDTO {

    @ApiModelProperty("实付金额")
    @NotNull(message = "实付金额不能为空")
    @Min(value = 0, message = "实付金额不能小于0")
    private BigDecimal amount;

    @ApiModelProperty("支付渠道ID")
    @NotNull(message = "支付渠道不能为空")
    private Long channelId;

    @ApiModelProperty("会员等级Id")
    @NotNull(message = "会员等级ID不能为空")
    private Long levelId;

    @ApiModelProperty("level购买时长")
    @NotNull(message = "购买时长不能为空")
    private Integer levelTime;

    @ApiModelProperty("level价格")
    @NotNull(message = "价格不能为空")
    private BigDecimal levelPrice;

    @ApiModelProperty("level限制类型")
    @NotBlank(message = "限制类型不能为空")
    private String levelLimitType;

    @ApiModelProperty("level限制次数")
    private Integer levelLimitCount;

    @ApiModelProperty("level总限制次数")
    @NotNull(message = "总限制次数不能为空")
    private Integer levelLimitTotal;

    @ApiModelProperty("VIP等级折扣")
    @NotNull(message = "VIP等级折扣不能为空")
    private BigDecimal levelDiscount;

    @ApiModelProperty("VIP可用店铺")
    @NotNull(message = "VIP可用店铺不能为空")
    private Long levelStoreId;

    @ApiModelProperty("出现不兼容时的解决方案")
    private String solution;
}
