package com.qs.mp.user.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qs.mp.common.enums.CouponDiscountTypeEnum;
import com.qs.mp.common.enums.CouponDistributeTypeEnum;
import com.qs.mp.common.enums.CouponStatusEnum;
import com.qs.mp.common.enums.CouponTypeEnum;
import com.qs.mp.common.enums.CouponUseAreaEnum;
import com.qs.mp.common.enums.UserCouponStatusEnum;
import com.qs.mp.user.domain.UserCoupon;
import java.io.Serializable;
import java.util.Date;

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

/**
 * @describe 用户的优惠券
 * @auther zhongcp
 * @create 2022-03-07 20:45:43
 */
@Data
@ApiModel("用户的优惠券出参类")
public class UserCouponVO extends UserCoupon {
  /**
   * 标题
   */
  @ApiModelProperty("标题")
  private String title;

  /**
   * 类型;1用户盲票购买优惠券、2用户门店消费优惠券、3经销商盲票采购优惠券
   */
  @ApiModelProperty("类型;1用户盲票购买优惠券、2用户门店消费优惠券、3经销商盲票采购优惠券")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  private CouponTypeEnum type;

  /**
   * 图片
   */
  @ApiModelProperty("图片")
  private String picUrl;

  /**
   * 使用说明
   */
  @ApiModelProperty("使用说明")
  private String description;

  /**
   * 优惠类型;1代金券、2折扣券、3兑换券
   */
  @ApiModelProperty("优惠类型;1代金券、2折扣券、3兑换券")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  private CouponDiscountTypeEnum discountType;

  /**
   * 优惠金额（比例）
   */
  @ApiModelProperty("优惠金额（比例）")
  private Integer discount;

  /**
   * 最低消费金额
   */
  @ApiModelProperty("最低消费金额")
  private Integer minOrderAmt;

  /**
   * 使用范围;0通用 1生成券时指定范围 2发放时动态指定范围
   */
  @ApiModelProperty("使用范围;0通用 1生成券时指定范围 2发放时动态指定范围")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  private CouponUseAreaEnum useArea;

  /**
   * 叠加使用;0不允许 1允许
   */
  @ApiModelProperty("叠加使用;0不允许 1允许")
  private Integer compositeUse;

  /**
   * 是否选中
   */
  @ApiModelProperty("是否选中")
  private boolean checked = false;


}
