package com.yonge.cooleshow.biz.dal.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
import com.yonge.cooleshow.biz.dal.enums.coupon.CouponCategoryEnum;
import com.yonge.cooleshow.biz.dal.enums.coupon.CouponTypeEnum;
import com.yonge.cooleshow.biz.dal.enums.coupon.CouponValidTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 优惠券信息
 * </p>
 *
 * @author Eric
 * @since 2022-09-02
 */
@Getter
@Setter
@TableName("coupon_info")
@ApiModel(value = "CouponInfo对象", description = "优惠券信息")
public class CouponInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("优惠券ID")
    @TableId(value = "id_", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("优惠券名称")
    @TableField("name_")
    private String name;

    @ApiModelProperty("优惠券编号")
    @TableField("serial_num_")
    private String serialNum;

    @ApiModelProperty("描述")
    @TableField("describe_")
    private String describe;

    @ApiModelProperty("客户端类型")
    @TableField("client_type_")
    private ClientEnum clientType;

    @ApiModelProperty("可用品类")
    @TableField("category_")
    private CouponCategoryEnum category;

    @ApiModelProperty("使用门槛")
    @TableField("use_limit_")
    private BigDecimal useLimit;

    @ApiModelProperty("优惠金额")
    @TableField("discount_price_")
    private BigDecimal discountPrice;

    @ApiModelProperty("优惠券类型")
    @TableField("coupon_type_")
    private CouponTypeEnum couponType;

    @ApiModelProperty("有效期类型")
    @TableField("valid_type_")
    private CouponValidTypeEnum validType;

    @ApiModelProperty("有效天数")
    @TableField("valid_day_")
    private Integer validDay;

    @ApiModelProperty("生效时间")
    @TableField("start_time_")
    private Long startTime;

    @ApiModelProperty("失效时间")
    @TableField("end_time_")
    private Long endTime;

    @ApiModelProperty("库存量")
    @TableField("inventory_")
    private Integer inventory;

    @ApiModelProperty("领取次数限制")
    @TableField("quantity_limit_")
    private Integer quantityLimit;

    @ApiModelProperty("启禁状态")
    @TableField("status_")
    private Integer status;

    @ApiModelProperty("更新用户")
    @TableField("updated_by_")
    private Long updatedBy;

    @ApiModelProperty("更新时间")
    @TableField("update_time_")
    private Long updateTime;

    @ApiModelProperty("创建用户")
    @TableField("created_by_")
    private Long createdBy;

    @ApiModelProperty("创建时间")
    @TableField("created_time_")
    private Date createdTime;


}
