package com.liquidnet.service.candy.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.List;

@Data
@ApiModel
public class CandyCouponPreviewVo implements Serializable, Cloneable {
    /* --- --- --- CandyCoupon */
    private String couponId;
    @ApiModelProperty(value = "标题")
    private String title;
    @ApiModelProperty(value = "标注")
    private String label;
    @ApiModelProperty(value = "须知")
    private String notice;
    @ApiModelProperty(value = "业务类别[0-全场｜1-演出｜2-商品｜3-优先购]")
    private Integer busiType;
    @ApiModelProperty(value = "券类型[1-代金券｜2-满减券｜3-兑换券｜4-折扣券 | 101-优先券]")
    private Integer couType;
    @ApiModelProperty(value = "[0-用户输入兑换｜1-发放至用户｜2-积分商品｜3-发放需领取｜4-会员专属]")
    private Integer bindType;
    @ApiModelProperty(value = "折扣")
    private BigDecimal discount;
    @ApiModelProperty(value = "面值")
    private BigDecimal valFace;
    @ApiModelProperty(value = "满减~满")
    private BigDecimal valOver;
    @ApiModelProperty(value = "满减~减")
    private BigDecimal valMinus;
    @ApiModelProperty(value = "有效天数")
    private Integer validity;
    @ApiModelProperty(value = "兑换有效天数")
    private Integer redeemValidity;

    /* --- --- --- CandyCouponRule */
    private List<CandyCouponRulesVo> useRules;

    private static final CandyCouponPreviewVo obj = new CandyCouponPreviewVo();

    public static CandyCouponPreviewVo getNew() {
        try {
            return (CandyCouponPreviewVo) obj.clone();
        } catch (CloneNotSupportedException e) {
            return new CandyCouponPreviewVo();
        }
    }
}
