package com.hai.entity;

import com.hai.model.HighCouponModel;

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

/**
 * high_coupon
 * @author 
 */
/**
 * 
 * 代码由工具生成
 * 
 **/
public class HighCoupon extends HighCouponModel implements Serializable {
    /**
     * 主键
     */
    private Long id;

    /**
     * 单位id
     */
    private Long companyId;

    /**
     * 商户id
     */
    private Long merchantId;

    /**
     * 卡券编号
     */
    private String couponKey;

    /**
     * 卡券名称
     */
    private String couponName;

    /**
     * 卡券面值
     */
    private BigDecimal couponPrice;

    /**
     * 卡券图片
     */
    private String couponImg;

    /**
     * 卡卷轮播图
     */
    private String couponCarouselImg;

    /**
     * 卡卷描述
     */
    private String couponDesc;

    /**
     * 卡卷类型  1:内部卷  2:外部卷
     */
    private Integer couponType;

    /**
     * 销售截止日期
     */
    private Date salesEndTime;

    /**
     * 归库天数
     */
    private Integer recycleDay;

    /**
     * 限购数量
     */
    private Integer limitNumber;

    /**
     * 销售价格
     */
    private BigDecimal salesPrice;

    /**
     * 折扣价格
     */
    private BigDecimal discountPrice;

    /**
     * 销售数量
     */
    private Integer salesCount;

    /**
     * 是否可赠送卡券
     */
    private Boolean isPresent;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 操作人id
     */
    private Long operatorId;

    /**
     * 操作人名称
     */
    private String operatorName;

    /**
     * 支付类型：1.微信支付 2.金币支付  3. 银联支付  4. 汇联通支付
     */
    private Integer payType;

    private String ext1;

    private String ext2;

    private String ext3;

    /**
     * 状态：0.删除 1.编辑中  2.已上架  3.已下架   101.上架审批中 102.上架审批驳回 
     */
    private Integer status;

    /**
     * 1.赠券专区 2.金币专区 3. 银联专区 4. 优选商品   5. 贵州工会卡专区
     */
    private Integer displayArea;

    /**
     * 卡券来源：1.中石化 2.消费券 3.其他  4：贵州中石化
     */
    private Integer couponSource;

    /**
     * 渠道商 1：主营渠道 2：银联渠道
     */
    private Integer distributor;

    /**
     * 商品类别id
     */
    private Integer goodsTypeId;

    /**
     * 品牌id
     */
    private Integer brandId;

    /**
     * 是否需要预约  0：否  1：是
     */
    private Boolean reserveStatus;

    /**
     * 是否自动充值积分 0 否  1 是
     */
    private Boolean buyPoints;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

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

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public Long getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    public String getCouponKey() {
        return couponKey;
    }

    public void setCouponKey(String couponKey) {
        this.couponKey = couponKey;
    }

    public String getCouponName() {
        return couponName;
    }

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

    public BigDecimal getCouponPrice() {
        return couponPrice;
    }

    public void setCouponPrice(BigDecimal couponPrice) {
        this.couponPrice = couponPrice;
    }

    public String getCouponImg() {
        return couponImg;
    }

    public void setCouponImg(String couponImg) {
        this.couponImg = couponImg;
    }

    public String getCouponCarouselImg() {
        return couponCarouselImg;
    }

    public void setCouponCarouselImg(String couponCarouselImg) {
        this.couponCarouselImg = couponCarouselImg;
    }

    public String getCouponDesc() {
        return couponDesc;
    }

    public void setCouponDesc(String couponDesc) {
        this.couponDesc = couponDesc;
    }

    public Integer getCouponType() {
        return couponType;
    }

    public void setCouponType(Integer couponType) {
        this.couponType = couponType;
    }

    public Date getSalesEndTime() {
        return salesEndTime;
    }

    public void setSalesEndTime(Date salesEndTime) {
        this.salesEndTime = salesEndTime;
    }

    public Integer getRecycleDay() {
        return recycleDay;
    }

    public void setRecycleDay(Integer recycleDay) {
        this.recycleDay = recycleDay;
    }

    public Integer getLimitNumber() {
        return limitNumber;
    }

    public void setLimitNumber(Integer limitNumber) {
        this.limitNumber = limitNumber;
    }

    public BigDecimal getSalesPrice() {
        return salesPrice;
    }

    public void setSalesPrice(BigDecimal salesPrice) {
        this.salesPrice = salesPrice;
    }

    public BigDecimal getDiscountPrice() {
        return discountPrice;
    }

    public void setDiscountPrice(BigDecimal discountPrice) {
        this.discountPrice = discountPrice;
    }

    public Integer getSalesCount() {
        return salesCount;
    }

    public void setSalesCount(Integer salesCount) {
        this.salesCount = salesCount;
    }

    public Boolean getIsPresent() {
        return isPresent;
    }

    public void setIsPresent(Boolean isPresent) {
        this.isPresent = isPresent;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Long getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getExt1() {
        return ext1;
    }

    public void setExt1(String ext1) {
        this.ext1 = ext1;
    }

    public String getExt2() {
        return ext2;
    }

    public void setExt2(String ext2) {
        this.ext2 = ext2;
    }

    public String getExt3() {
        return ext3;
    }

    public void setExt3(String ext3) {
        this.ext3 = ext3;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getDisplayArea() {
        return displayArea;
    }

    public void setDisplayArea(Integer displayArea) {
        this.displayArea = displayArea;
    }

    public Integer getCouponSource() {
        return couponSource;
    }

    public void setCouponSource(Integer couponSource) {
        this.couponSource = couponSource;
    }

    public Integer getDistributor() {
        return distributor;
    }

    public void setDistributor(Integer distributor) {
        this.distributor = distributor;
    }

    public Integer getGoodsTypeId() {
        return goodsTypeId;
    }

    public void setGoodsTypeId(Integer goodsTypeId) {
        this.goodsTypeId = goodsTypeId;
    }

    public Integer getBrandId() {
        return brandId;
    }

    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    public Boolean getReserveStatus() {
        return reserveStatus;
    }

    public void setReserveStatus(Boolean reserveStatus) {
        this.reserveStatus = reserveStatus;
    }

    public Boolean getBuyPoints() {
        return buyPoints;
    }

    public void setBuyPoints(Boolean buyPoints) {
        this.buyPoints = buyPoints;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        HighCoupon other = (HighCoupon) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
            && (this.getMerchantId() == null ? other.getMerchantId() == null : this.getMerchantId().equals(other.getMerchantId()))
            && (this.getCouponKey() == null ? other.getCouponKey() == null : this.getCouponKey().equals(other.getCouponKey()))
            && (this.getCouponName() == null ? other.getCouponName() == null : this.getCouponName().equals(other.getCouponName()))
            && (this.getCouponPrice() == null ? other.getCouponPrice() == null : this.getCouponPrice().equals(other.getCouponPrice()))
            && (this.getCouponImg() == null ? other.getCouponImg() == null : this.getCouponImg().equals(other.getCouponImg()))
            && (this.getCouponCarouselImg() == null ? other.getCouponCarouselImg() == null : this.getCouponCarouselImg().equals(other.getCouponCarouselImg()))
            && (this.getCouponDesc() == null ? other.getCouponDesc() == null : this.getCouponDesc().equals(other.getCouponDesc()))
            && (this.getCouponType() == null ? other.getCouponType() == null : this.getCouponType().equals(other.getCouponType()))
            && (this.getSalesEndTime() == null ? other.getSalesEndTime() == null : this.getSalesEndTime().equals(other.getSalesEndTime()))
            && (this.getRecycleDay() == null ? other.getRecycleDay() == null : this.getRecycleDay().equals(other.getRecycleDay()))
            && (this.getLimitNumber() == null ? other.getLimitNumber() == null : this.getLimitNumber().equals(other.getLimitNumber()))
            && (this.getSalesPrice() == null ? other.getSalesPrice() == null : this.getSalesPrice().equals(other.getSalesPrice()))
            && (this.getDiscountPrice() == null ? other.getDiscountPrice() == null : this.getDiscountPrice().equals(other.getDiscountPrice()))
            && (this.getSalesCount() == null ? other.getSalesCount() == null : this.getSalesCount().equals(other.getSalesCount()))
            && (this.getIsPresent() == null ? other.getIsPresent() == null : this.getIsPresent().equals(other.getIsPresent()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getOperatorId() == null ? other.getOperatorId() == null : this.getOperatorId().equals(other.getOperatorId()))
            && (this.getOperatorName() == null ? other.getOperatorName() == null : this.getOperatorName().equals(other.getOperatorName()))
            && (this.getPayType() == null ? other.getPayType() == null : this.getPayType().equals(other.getPayType()))
            && (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1()))
            && (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2()))
            && (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getDisplayArea() == null ? other.getDisplayArea() == null : this.getDisplayArea().equals(other.getDisplayArea()))
            && (this.getCouponSource() == null ? other.getCouponSource() == null : this.getCouponSource().equals(other.getCouponSource()))
            && (this.getDistributor() == null ? other.getDistributor() == null : this.getDistributor().equals(other.getDistributor()))
            && (this.getGoodsTypeId() == null ? other.getGoodsTypeId() == null : this.getGoodsTypeId().equals(other.getGoodsTypeId()))
            && (this.getBrandId() == null ? other.getBrandId() == null : this.getBrandId().equals(other.getBrandId()))
            && (this.getReserveStatus() == null ? other.getReserveStatus() == null : this.getReserveStatus().equals(other.getReserveStatus()))
            && (this.getBuyPoints() == null ? other.getBuyPoints() == null : this.getBuyPoints().equals(other.getBuyPoints()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
        result = prime * result + ((getMerchantId() == null) ? 0 : getMerchantId().hashCode());
        result = prime * result + ((getCouponKey() == null) ? 0 : getCouponKey().hashCode());
        result = prime * result + ((getCouponName() == null) ? 0 : getCouponName().hashCode());
        result = prime * result + ((getCouponPrice() == null) ? 0 : getCouponPrice().hashCode());
        result = prime * result + ((getCouponImg() == null) ? 0 : getCouponImg().hashCode());
        result = prime * result + ((getCouponCarouselImg() == null) ? 0 : getCouponCarouselImg().hashCode());
        result = prime * result + ((getCouponDesc() == null) ? 0 : getCouponDesc().hashCode());
        result = prime * result + ((getCouponType() == null) ? 0 : getCouponType().hashCode());
        result = prime * result + ((getSalesEndTime() == null) ? 0 : getSalesEndTime().hashCode());
        result = prime * result + ((getRecycleDay() == null) ? 0 : getRecycleDay().hashCode());
        result = prime * result + ((getLimitNumber() == null) ? 0 : getLimitNumber().hashCode());
        result = prime * result + ((getSalesPrice() == null) ? 0 : getSalesPrice().hashCode());
        result = prime * result + ((getDiscountPrice() == null) ? 0 : getDiscountPrice().hashCode());
        result = prime * result + ((getSalesCount() == null) ? 0 : getSalesCount().hashCode());
        result = prime * result + ((getIsPresent() == null) ? 0 : getIsPresent().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getOperatorId() == null) ? 0 : getOperatorId().hashCode());
        result = prime * result + ((getOperatorName() == null) ? 0 : getOperatorName().hashCode());
        result = prime * result + ((getPayType() == null) ? 0 : getPayType().hashCode());
        result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode());
        result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode());
        result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getDisplayArea() == null) ? 0 : getDisplayArea().hashCode());
        result = prime * result + ((getCouponSource() == null) ? 0 : getCouponSource().hashCode());
        result = prime * result + ((getDistributor() == null) ? 0 : getDistributor().hashCode());
        result = prime * result + ((getGoodsTypeId() == null) ? 0 : getGoodsTypeId().hashCode());
        result = prime * result + ((getBrandId() == null) ? 0 : getBrandId().hashCode());
        result = prime * result + ((getReserveStatus() == null) ? 0 : getReserveStatus().hashCode());
        result = prime * result + ((getBuyPoints() == null) ? 0 : getBuyPoints().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", companyId=").append(companyId);
        sb.append(", merchantId=").append(merchantId);
        sb.append(", couponKey=").append(couponKey);
        sb.append(", couponName=").append(couponName);
        sb.append(", couponPrice=").append(couponPrice);
        sb.append(", couponImg=").append(couponImg);
        sb.append(", couponCarouselImg=").append(couponCarouselImg);
        sb.append(", couponDesc=").append(couponDesc);
        sb.append(", couponType=").append(couponType);
        sb.append(", salesEndTime=").append(salesEndTime);
        sb.append(", recycleDay=").append(recycleDay);
        sb.append(", limitNumber=").append(limitNumber);
        sb.append(", salesPrice=").append(salesPrice);
        sb.append(", discountPrice=").append(discountPrice);
        sb.append(", salesCount=").append(salesCount);
        sb.append(", isPresent=").append(isPresent);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", operatorId=").append(operatorId);
        sb.append(", operatorName=").append(operatorName);
        sb.append(", payType=").append(payType);
        sb.append(", ext1=").append(ext1);
        sb.append(", ext2=").append(ext2);
        sb.append(", ext3=").append(ext3);
        sb.append(", status=").append(status);
        sb.append(", displayArea=").append(displayArea);
        sb.append(", couponSource=").append(couponSource);
        sb.append(", distributor=").append(distributor);
        sb.append(", goodsTypeId=").append(goodsTypeId);
        sb.append(", brandId=").append(brandId);
        sb.append(", reserveStatus=").append(reserveStatus);
        sb.append(", buyPoints=").append(buyPoints);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}
