package com.fs.his.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 优惠券对象 fs_coupon
 *
 * @author fs
 * @date 2023-09-04
 */
public class FsCoupon extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long couponId;

    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date limitTime;

    /** 面额 */
    @Excel(name = "面额")
    private BigDecimal price;

    /** 数量 */
    @Excel(name = "数量")
    private Long number;

    /** 卷类型 1代金券  */
    @Excel(name = "卷类型 1代金券 ")
    private Integer couponType;

    /** 最低消费金额可用 */
    @Excel(name = "最低消费金额可用")
    private BigDecimal minPrice;

    /** 剩余数量 */
    @Excel(name = "剩余数量")
    private Long remainNumber;

    /** 状态 */
    @Excel(name = "状态")
    private Integer status;
    @Excel(name = "折扣")
    private BigDecimal rate;
    @Excel(name = "领取后有效期")
    private Integer limitDay;
    @Excel(name = "有效期类别 1 过期时间 2 领取后有效期")
    private Integer limitType;

    @Excel(name = "可领取数量")
    private Integer limitCount;

    private String cateIds;


    public String getCateIds() {
        return cateIds;
    }

    public void setCateIds(String cateIds) {
        this.cateIds = cateIds;
    }

    public Integer getLimitCount() {
        return limitCount;
    }

    public void setLimitCount(Integer limitCount) {
        this.limitCount = limitCount;
    }

    public Integer getLimitDay() {
        return limitDay;
    }

    public void setLimitDay(Integer limitDay) {
        this.limitDay = limitDay;
    }

    public Integer getLimitType() {
        return limitType;
    }

    public void setLimitType(Integer limitType) {
        this.limitType = limitType;
    }

    public BigDecimal getRate() {
        return rate;
    }

    public void setRate(BigDecimal rate) {
        this.rate = rate;
    }

    public Integer getStatus() {
        return status;
    }

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

    public void setCouponId(Long couponId)
    {
        this.couponId = couponId;
    }

    public Long getCouponId()
    {
        return couponId;
    }
    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }
    public void setLimitTime(Date limitTime)
    {
        this.limitTime = limitTime;
    }

    public Date getLimitTime()
    {
        return limitTime;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setNumber(Long number)
    {
        this.number = number;
    }

    public Long getNumber()
    {
        return number;
    }
    public void setCouponType(Integer couponType)
    {
        this.couponType = couponType;
    }

    public Integer getCouponType()
    {
        return couponType;
    }
    public void setMinPrice(BigDecimal minPrice)
    {
        this.minPrice = minPrice;
    }

    public BigDecimal getMinPrice()
    {
        return minPrice;
    }
    public void setRemainNumber(Long remainNumber)
    {
        this.remainNumber = remainNumber;
    }

    public Long getRemainNumber()
    {
        return remainNumber;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("couponId", getCouponId())
            .append("title", getTitle())
            .append("createTime", getCreateTime())
            .append("limitTime", getLimitTime())
            .append("price", getPrice())
            .append("number", getNumber())
            .append("couponType", getCouponType())
            .append("minPrice", getMinPrice())
            .append("remainNumber", getRemainNumber())
            .toString();
    }
}
