package com.ylx.massage.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ApiModel(value = "领取优惠券请求参数VO")
public class ClaimCouponRequestVO implements Serializable {

    /**
     * 发劵人id
     */
    @ApiModelProperty(value = "发劵人id")
    private String userId;

    /**
     * 模板ID(优惠券ID)
     */
    @ApiModelProperty(value = "主键ID, 模板ID")
    private String templateId;

    /**
     * 优惠券名称
     */
    @ApiModelProperty(value = "优惠券名称")
    private String name;

    /**
     * 券图URL
     */
    @ApiModelProperty(value = "券图URL")
    private String imageUrl;

    /**
     * 优惠券类型: 1-兑换券, 2-折扣券, 3-满减券
     */
    @ApiModelProperty(value = "优惠券类型: 1-兑换券, 2-折扣券, 3-满减券")
    private String type;

    /**
     * 优惠券类型描述
     */
    @ApiModelProperty(value = "优惠券类型描述")
    private String couponTypeDesc;

    /**
     * 关联类型: 1-商品, 2-商品分类
     */
    @ApiModelProperty(value = "关联类型: 1-商品, 2-商品分类")
    private String relatedType;

    /**
     * 关联ID
     */
    @ApiModelProperty(value = "关联ID")
    private String relatedId;

    /**
     * 关联名称 (商品名称或分类名称)
     */
    @ApiModelProperty(value = "关联名称 (商品名称或分类名称)")
    private String relatedName;

    /**
     * 门槛金额(元): 满X元生效，适用于满减/折扣
     */
    @ApiModelProperty(value = "门槛金额(元): 满X元生效，适用于满减/折扣")
    private BigDecimal ruleMinSpendAmount;

    /**
     * 折扣率: 如0.80表示8折，仅折扣券使用
     */
    @ApiModelProperty(value = "折扣率: 如0.80表示8折，仅折扣券使用")
    private BigDecimal ruleDiscountRate;

    /**
     * 折扣封顶金额(元): 折扣最高优惠
     */
    @ApiModelProperty(value = "折扣封顶金额(元): 折扣最高优惠")
    private BigDecimal ruleDiscountCapAmount;

    /**
     * 满减金额(元): 仅满减券使用
     */
    @ApiModelProperty(value = "满减金额(元): 仅满减券使用")
    private BigDecimal ruleReductionAmount;

    /**
     * 有效期类型 1-固定日期范围, 2-领券后N天有效, 3-长期有效，4-三方赠送
     */
    @ApiModelProperty(value = "有效期类型: 1-固定日期范围, 2-领券后N天有效, 3-长期有效，4-三方赠送")
    private String validityType;

    /**
     * 有效期开始时间
     */
    @ApiModelProperty(value = "有效期开始时间")
    private Date validStartTime;

    /**
     * 有效期结束时间
     */
    @ApiModelProperty(value = "有效期结束时间")
    private Date validEndTime;

    /**
     * 有效天数
     */
    @ApiModelProperty(value = "有效天数")
    private String validDays;

    /**
     * 所在地区码
     */
    @ApiModelProperty(value = "所在地区码")
    private String country;

    /**
     * 所在地区全部码
     */
    @ApiModelProperty(value = "所在地区全部码")
    private String countryAll;

    /**
     * 所在地区
     */
    @ApiModelProperty(value = "所在地区")
    private String locality;

    /**
     * 商户id
     */
    @ApiModelProperty(value = "商户id")
    private String merchantId;

    /**
     * 商户名称
     */
    @ApiModelProperty(value = "商户名称")
    private String storeName;

    /**
     * 商品ID(可多个)
     */
    @ApiModelProperty(value = "商品ID(可多个)")
    private String productId;

    /**
     * 商品名称(可多个)
     */
    @ApiModelProperty(value = "商品名称(可多个)")
    private String productName;

    /**
     * 商品价格(元)
     */
    @ApiModelProperty(value = "商品价格(元)")
    private BigDecimal costPrice;
}
