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 com.yonge.cooleshow.biz.dal.enums.ClientEnum;
import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 购买会员卡记录表
 */
@TableName("vip_card_record")
@ApiModel(value = "VipCardRecord对象", description = "购买会员卡记录表")
public class VipCardRecord implements Serializable {
	private static final long serialVersionUID = 1L;
    @ApiModelProperty("会员记录id ")
    @TableId(value = "id_", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("用户id ")
	@TableField(value = "user_id_")
    private Long userId;
    @ApiModelProperty("订单号 活动id")
	@TableField(value = "order_no_")
    private String orderNo;
    @ApiModelProperty("订单详情号 ")
    @TableField(value = "sub_order_no_")
    private String subOrderNo;
    @ApiModelProperty("会员卡id ")
	@TableField(value = "vip_card_id_")
    private Long vipCardId;

    @TableField(value = "times_")
    @ApiModelProperty("添加时间数量")
    private Integer times;

    @TableField(value = "type_")
    @ApiModelProperty("时间类型 DAY:天 MONTH:月 ，QUARTERLY : 季度 YEAR_HALF ： 半年 YEAR:年")
    private PeriodEnum type;

    @TableField(value = "client_type_")
    @ApiModelProperty("用户类型 学生：STUDENT 老师 ：TEACHER")
    private ClientEnum clientType;

    @ApiModelProperty("来源类型 ： ACTIVITY ：活动 ，ORDER:订单")
    @TableField(value = "source_type_")
    private SourceTypeEnum sourceType;

    @ApiModelProperty("会员卡开始时间 ")
	@TableField(value = "start_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date startTime;
    @ApiModelProperty("创建时间 ")
	@TableField(value = "create_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;
    @ApiModelProperty("更新时间 ")
	@TableField(value = "update_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;
    @ApiModelProperty("会员卡结束时间 ")
	@TableField(value = "end_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date endTime;
    /***
     * 消息发送 0、未发送 1、已发送提前3天消息 2、已发送会员过期消息
     * @author liweifan
     * @updateTime 2022/5/5 19:25
     */
    @TableField(value = "msg_status_")
    private Integer msgStatus;

    @ApiModelProperty("创建人")
    @TableField(value = "create_by_")
    private Long createBy;

    @ApiModelProperty("备注")
    @TableField(value = "reason_")
    private String reason;

    public Long getCreateBy() {
        return createBy;
    }

    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Integer getTimes() {
        return times;
    }

    public void setTimes(Integer times) {
        this.times = times;
    }

    public PeriodEnum getType() {
        return type;
    }

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

    public SourceTypeEnum getSourceType() {
        return sourceType;
    }

    public void setSourceType(SourceTypeEnum sourceType) {
        this.sourceType = sourceType;
    }

    public ClientEnum getClientType() {
        return clientType;
    }

    public void setClientType(ClientEnum clientType) {
        this.clientType = clientType;
    }

    public Long getId() {
        return id;
    }

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

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getSubOrderNo() {
        return subOrderNo;
    }

    public void setSubOrderNo(String subOrderNo) {
        this.subOrderNo = subOrderNo;
    }

    public Long getVipCardId() {
        return vipCardId;
    }

    public void setVipCardId(Long vipCardId) {
        this.vipCardId = vipCardId;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    
	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 Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Integer getMsgStatus() {
        return msgStatus;
    }

    public void setMsgStatus(Integer msgStatus) {
        this.msgStatus = msgStatus;
    }
}