package com.gree.mall.manager.bean.coupon;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gree.mall.manager.annotation.ZfireField;
import com.gree.mall.manager.enums.CouponCrowdEnum;
import com.gree.mall.manager.enums.CouponStatusEnum;
import com.gree.mall.manager.enums.CouponTypeEnum;
import com.gree.mall.manager.enums.CouponUseTypeEnum;
import com.gree.mall.manager.plus.entity.Coupon;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel
@Data
@ZfireField(tbName = "a")
public class CouponVO  {


    @ZfireField(hide = true)
    @ApiModelProperty(value = "优惠券id")
    private String couponId;

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

    @ApiModelProperty(value = "优惠券性质")
    private CouponUseTypeEnum type;

    @ApiModelProperty(value = "优惠券类型")
    private CouponTypeEnum couponType;

    @ApiModelProperty(value = "订单满足金额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "优惠券面值")
    private BigDecimal couponValue;

    @ApiModelProperty(value = "发放总量")
    private Integer couponAmount;

    @ApiModelProperty(value = "每人限领次数")
    private Integer receiveLimitCount;

    @ApiModelProperty(value = "显示时间")
    private Date displayTime;

    @ApiModelProperty(value = "状态")
    private CouponStatusEnum flag;

    @ApiModelProperty(value = "优惠券领取开始时间")
    private Date obtainStartTime;

    @ApiModelProperty(value = "优惠券领取结束时间")
    private Date obtainEndTime;

    @ApiModelProperty(value = "领券多少天内有效")
    private Integer activeDay;

    @ApiModelProperty(value = "优惠券使用开始时间")
    private Date activeStartTime;

    @ApiModelProperty(value = "优惠券使用结束时间")
    private Date activeEndTime;

    @ApiModelProperty(value = "领取条件")
    private CouponCrowdEnum receiveCrowd;

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

    @ApiModelProperty(value = "修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "创建人")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    @ApiModelProperty(value = "修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

}
