package com.ylx.massage.domain;


import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

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

/**
 * 优惠券的规则信息(Coupon)表实体类
 *
 * @author makejava
 * @since 2024-05-13 16:32:59
 */
@Setter
@Getter

@ApiModel(value = "Coupon" ,description = "优惠券")
public class Coupon extends Model<Coupon> {
    //优惠券id
    @ApiModelProperty("优惠券id")
    private String id;

    //优惠券名称，可以和活动名称保持一致
    @ApiModelProperty("优惠券名称，可以和活动名称保持一致")
    private String name;

    //优惠券类型，1：普通券
    @ApiModelProperty("优惠券类型，1：普通券")
    private Integer type;

    /**
     * 优惠类型， 2:折扣, 3:满减
     */
    @ApiModelProperty("优惠类型， 2:折扣, 3:满减")
    private Integer discountType;

    //优惠值
    @ApiModelProperty("优惠值")
    private BigDecimal discountValue;

    //折扣值
    @ApiModelProperty("折扣值")
    private BigDecimal rebValue;

    //门槛金额
    @ApiModelProperty("门槛金额")
    private BigDecimal thresholdAmount;

    //获取方式：1:手动领取 2,自动发放
    @ApiModelProperty("获取方式：1:手动领取 2,自动发放")
    private Integer obtainWay;

    /**
     * 优惠券有效期天数
     */
    @ApiModelProperty("优惠券有效期天数")
    private Integer termDays;

    //优惠券配置状态，0：未使用，1：进行中
    @ApiModelProperty("优惠券配置状态，0：未使用，1：进行中")
    private Integer status;

    //已使用数量
    @ApiModelProperty("已使用数量")
    private Integer usedNum;

    /**
     * 每个人限领的数量
     */
    @ApiModelProperty("每个人限领的数量")
    private Integer userLimit;

    //拓展参数字段，保留字段
    @ApiModelProperty("保留字段")
    private String extParam;

    @ApiModelProperty("部门id")
    private String deptId;

    @ApiModelProperty("部门名称")
    private String deptName;

    //系统创建时间
    @ApiModelProperty("创建时间")
    private Date createTime;

    //系统修改时间
    @ApiModelProperty("修改时间")
    private Date updateTime;

    //是否删除0否1是
    @ApiModelProperty("是否删除0否1是")
    @TableLogic
    private Integer isDelete;


    /**
     * 获取主键值
     *
     * @return 主键值
     */
    @Override
    public Serializable pkVal() {
        return this.id;
    }
}

