package cn.ysk.cashier.mybatis.entity;

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

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.io.Serializable;

/**
 * 优惠券(TbShopCoupon)表实体类
 *
 * @author ww
 * @since 2024-10-24 13:54:34
 */
@SuppressWarnings("serial")
public class TbShopCoupon extends Model<TbShopCoupon> {
    //自增
    private Integer id;

    private String shopId;
    //名称(无意义)
    private String title;
    //1-满减  2-商品
    private Integer type;
    //满多少金额
    private BigDecimal fullAmount;
    //减多少金额
    private BigDecimal discountAmount;
    //描述
    private String description;
    //发放数量
    private Integer number;
    //剩余数量
    private Integer leftNumber;
    //有效期类型，可选值为 fixed（固定时间）/custom（自定义时间）
    private String validityType;
    //有效天数
    private Integer validDays;
    //隔多少天生效
    private Integer daysToTakeEffect;
    //有效开始时间
    private Date validStartTime;
    //有效结束时间
    private Date validEndTime;
    //周 数组["周一","周二"]
    private String userDays;
    //all-全时段 custom-指定时段
    private String useTimeType;
    //可用开始时间
    private LocalTime useStartTime;
    //可用结束时间
    private LocalTime useEndTime;
    //已使用数量
    private Integer useNumber;
    //发放人
    private String editor;
    //状态0-关闭 1 正常
    private Integer status;

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;


    public Integer getId() {
        return id;
    }

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

    public String getShopId() {
        return shopId;
    }

    public void setShopId(String shopId) {
        this.shopId = shopId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public BigDecimal getFullAmount() {
        return fullAmount;
    }

    public void setFullAmount(BigDecimal fullAmount) {
        this.fullAmount = fullAmount;
    }

    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Integer getLeftNumber() {
        return leftNumber;
    }

    public void setLeftNumber(Integer leftNumber) {
        this.leftNumber = leftNumber;
    }

    public String getValidityType() {
        return validityType;
    }

    public void setValidityType(String validityType) {
        this.validityType = validityType;
    }

    public Integer getValidDays() {
        return validDays;
    }

    public void setValidDays(Integer validDays) {
        this.validDays = validDays;
    }

    public Integer getDaysToTakeEffect() {
        return daysToTakeEffect;
    }

    public void setDaysToTakeEffect(Integer daysToTakeEffect) {
        this.daysToTakeEffect = daysToTakeEffect;
    }

    public Date getValidStartTime() {
        return validStartTime;
    }

    public void setValidStartTime(Date validStartTime) {
        this.validStartTime = validStartTime;
    }

    public Date getValidEndTime() {
        return validEndTime;
    }

    public void setValidEndTime(Date validEndTime) {
        this.validEndTime = validEndTime;
    }

    public String getUserDays() {
        return userDays;
    }

    public void setUserDays(String userDays) {
        this.userDays = userDays;
    }

    public String getUseTimeType() {
        return useTimeType;
    }

    public void setUseTimeType(String useTimeType) {
        this.useTimeType = useTimeType;
    }

    public LocalTime getUseStartTime() {
        return useStartTime;
    }

    public void setUseStartTime(LocalTime useStartTime) {
        this.useStartTime = useStartTime;
    }

    public LocalTime getUseEndTime() {
        return useEndTime;
    }

    public void setUseEndTime(LocalTime useEndTime) {
        this.useEndTime = useEndTime;
    }

    public Integer getUseNumber() {
        return useNumber;
    }

    public void setUseNumber(Integer useNumber) {
        this.useNumber = useNumber;
    }

    public String getEditor() {
        return editor;
    }

    public void setEditor(String editor) {
        this.editor = editor;
    }

    public Integer getStatus() {
        return status;
    }

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

    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;
    }
}

