package com.fzm.mall.server.admin.marketing.entity.dto;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fzm.mall.server.admin.goods_center.entity.dto.CategoryDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 商品优惠券
 * </p>
 *
 * @author fzm
 * @since 2021-04-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Coupon对象", description = "商品优惠券")
public class CouponDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    @ApiModelProperty(value = "优惠券编号")
    private String couponId;

    @ApiModelProperty(value = "类型  1:满减  2:直减  3: 满折  4:折扣   5:旅游消费")
    private Integer type;

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

    @ApiModelProperty(value = "描述")
    private String remark;

    @ApiModelProperty(value = "活动范围 1.全部 2.APP 3.PC 4.微信小程序")
    private Integer scope;

    @ApiModelProperty(value = "范围类型1: 全部  2: 指定类目  3: 指定商品")
    private Integer rangeType;

    @ApiModelProperty(value = "优惠券条件值")
    private BigDecimal conditionVal;

    @ApiModelProperty(value = "优惠值")
    private BigDecimal couponVal;

    @ApiModelProperty(value = "优惠券兑换价格（仅旅游消费）")
    private BigDecimal exchangePrice;

    @ApiModelProperty(value = "发行量  为0表示发行量没有上限")
    private Long circulation;

    @ApiModelProperty(value = "剩余数量")
    private Long amt;

    @ApiModelProperty(value = "开始时间")
    private Long startTime;

    @ApiModelProperty(value = "结束时间")
    private Long endTime;

    @ApiModelProperty(value = "状态 0->不可用;1->可用;2->未开始;3->已过期")
    private Integer status;

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

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Long createTime;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateTime;

    @ApiModelProperty(value = "优惠券对应的规格商品")
    private List<CouponSkuDTO> couponSkuList;

    @ApiModelProperty(value = "优惠券对应的商品类目")
    private List<CategoryDTO> categoryList;
}
