package com.yijia.coupon.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yijia.common.annotation.Excel;
import com.yijia.common.core.domain.BaseEntity;

/**
 * 优惠劵对象 coupon_info
 * 
 * @author yijia
 * @date 2021-04-27
 */
public class CouponInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Integer id;

    /** 优惠劵ID */
    @Excel(name = "优惠劵ID")
    private String couponId;

    /** 优惠劵名称 */
    @Excel(name = "优惠劵名称")
    private String couponName;

    /** 优惠劵类型 1现金劵，2折扣券，3兑换券 */
    @Excel(name = "优惠劵类型 1现金劵，2折扣券，3兑换券")
    private String couponType;

    /** 优惠劵使用门槛类型。 1.无门槛，2满减劵，3折扣 */
    @Excel(name = "优惠劵使用门槛类型。 1.无门槛，2满减劵，3折扣")
    private String useDiscountType;

    /** 油品名称 */
    @Excel(name = "油品名称")
    private String oilName;

    /** 1 柴油，2 汽油 */
    @Excel(name = "1 柴油，2 汽油")
    private String oilType;

    /** 优惠劵面值，金额 */
    @Excel(name = "优惠劵面值，金额")
    private BigDecimal couponAmt;

    /** 优惠劵数量 */
    @Excel(name = "优惠劵数量")
    private Long couponNum;

    /** 有效时间类型 1固定时间，2领取后x天内有效 */
    @Excel(name = "有效时间类型 1固定时间，2领取后x天内有效")
    private String effectiveTimeType;

    /** 固定时间-有效开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "固定时间-有效开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveTimeStart;

    /** 固定时间-有效结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "固定时间-有效结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveTimeEnd;

    /** 有效天数 */
    @Excel(name = "有效天数")
    private Integer effectiveDayNum;

    /** 优惠劵领取数量 */
    @Excel(name = "优惠劵领取数量")
    private Integer couponReceiveNum;

    /** 发放平台，1.微信 2支付宝 */
    @Excel(name = "发放平台，1.微信 2支付宝")
    private String openPlatform;

    /** 发放状态 */
    @Excel(name = "发放状态")
    private String grantStatus;

    /** 有效状态，1未生效 */
    @Excel(name = "有效状态，1未生效")
    private String status;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }
    public void setCouponId(String couponId) 
    {
        this.couponId = couponId;
    }

    public String getCouponId() 
    {
        return couponId;
    }
    public void setCouponName(String couponName) 
    {
        this.couponName = couponName;
    }

    public String getCouponName() 
    {
        return couponName;
    }
    public void setCouponType(String couponType) 
    {
        this.couponType = couponType;
    }

    public String getCouponType() 
    {
        return couponType;
    }
    public void setUseDiscountType(String useDiscountType) 
    {
        this.useDiscountType = useDiscountType;
    }

    public String getUseDiscountType() 
    {
        return useDiscountType;
    }
    public void setOilName(String oilName) 
    {
        this.oilName = oilName;
    }

    public String getOilName() 
    {
        return oilName;
    }
    public void setOilType(String oilType) 
    {
        this.oilType = oilType;
    }

    public String getOilType() 
    {
        return oilType;
    }
    public void setCouponAmt(BigDecimal couponAmt) 
    {
        this.couponAmt = couponAmt;
    }

    public BigDecimal getCouponAmt() 
    {
        return couponAmt;
    }
    public void setCouponNum(Long couponNum) 
    {
        this.couponNum = couponNum;
    }

    public Long getCouponNum() 
    {
        return couponNum;
    }
    public void setEffectiveTimeType(String effectiveTimeType) 
    {
        this.effectiveTimeType = effectiveTimeType;
    }

    public String getEffectiveTimeType() 
    {
        return effectiveTimeType;
    }
    public void setEffectiveTimeStart(Date effectiveTimeStart) 
    {
        this.effectiveTimeStart = effectiveTimeStart;
    }

    public Date getEffectiveTimeStart() 
    {
        return effectiveTimeStart;
    }
    public void setEffectiveTimeEnd(Date effectiveTimeEnd) 
    {
        this.effectiveTimeEnd = effectiveTimeEnd;
    }

    public Date getEffectiveTimeEnd() 
    {
        return effectiveTimeEnd;
    }
    public void setEffectiveDayNum(Integer effectiveDayNum) 
    {
        this.effectiveDayNum = effectiveDayNum;
    }

    public Integer getEffectiveDayNum() 
    {
        return effectiveDayNum;
    }
    public void setCouponReceiveNum(Integer couponReceiveNum) 
    {
        this.couponReceiveNum = couponReceiveNum;
    }

    public Integer getCouponReceiveNum() 
    {
        return couponReceiveNum;
    }
    public void setOpenPlatform(String openPlatform) 
    {
        this.openPlatform = openPlatform;
    }

    public String getOpenPlatform() 
    {
        return openPlatform;
    }
    public void setGrantStatus(String grantStatus) 
    {
        this.grantStatus = grantStatus;
    }

    public String getGrantStatus() 
    {
        return grantStatus;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("couponId", getCouponId())
            .append("couponName", getCouponName())
            .append("couponType", getCouponType())
            .append("useDiscountType", getUseDiscountType())
            .append("oilName", getOilName())
            .append("oilType", getOilType())
            .append("couponAmt", getCouponAmt())
            .append("couponNum", getCouponNum())
            .append("effectiveTimeType", getEffectiveTimeType())
            .append("effectiveTimeStart", getEffectiveTimeStart())
            .append("effectiveTimeEnd", getEffectiveTimeEnd())
            .append("effectiveDayNum", getEffectiveDayNum())
            .append("couponReceiveNum", getCouponReceiveNum())
            .append("openPlatform", getOpenPlatform())
            .append("grantStatus", getGrantStatus())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
