
package com.tmerclub.cloud.user.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 用户等级记录DTO
 *
 * @author tmerclub
 * @date 2021-05-14 11:04:52
 */
public class UserLevelLogDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "等级记录表")
    private Long levelLogId;

    @Schema(description = "用户id")
    private String userId;

    @Schema(description = "用户名称")
    private String nickName;

    @Schema(description = "手机号码")
    private String phone;

    @Schema(description = "变更类型 -1降级 0不变 1升级")
    private Integer levelIoType;

    @Schema(description = "等级变更原因1.成长值不足 2.成长值足够 3.购买会员 4.续费会员 5.会员到期")
    private Integer levelChangeReason;

    @Schema(description = "变更之前等级")
    private Integer beforeLevel;

    @Schema(description = "变更之前的等级类型  0:普通会员 1:付费会员")
    private Integer beforeLevelType;

    @Schema(description = "变更之后的等级")
    private Integer afterLevel;

    @Schema(description = "变更之后的等级类型 0:普通会员 1:付费会员")
    private Integer afterLevelType;

    @Schema(description = "支付单号")
    private Long payId;

    @Schema(description = "是否支付1已支付0未支付")
    private Integer payType;

    @Schema(description = "是否支付1已支付0未支付")
    private Integer isPayed;

    @Schema(description = "支付金额")
    private Long payAmount;

    @Schema(description = "升级时间")
    private Date createTime;

    @Schema(description = "起始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createStartTime;

    @Schema(description = "结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createEndTime;

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Date getCreateStartTime() {
        return createStartTime;
    }

    public void setCreateStartTime(Date createStartTime) {
        this.createStartTime = createStartTime;
    }

    public Date getCreateEndTime() {
        return createEndTime;
    }

    public void setCreateEndTime(Date createEndTime) {
        this.createEndTime = createEndTime;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getLevelLogId() {
        return levelLogId;
    }

    public void setLevelLogId(Long levelLogId) {
        this.levelLogId = levelLogId;
    }

    public String getUserId() {
        return userId;
    }

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

    public Integer getLevelIoType() {
        return levelIoType;
    }

    public void setLevelIoType(Integer levelIoType) {
        this.levelIoType = levelIoType;
    }

    public Integer getLevelChangeReason() {
        return levelChangeReason;
    }

    public void setLevelChangeReason(Integer levelChangeReason) {
        this.levelChangeReason = levelChangeReason;
    }

    public Integer getBeforeLevel() {
        return beforeLevel;
    }

    public void setBeforeLevel(Integer beforeLevel) {
        this.beforeLevel = beforeLevel;
    }

    public Integer getBeforeLevelType() {
        return beforeLevelType;
    }

    public void setBeforeLevelType(Integer beforeLevelType) {
        this.beforeLevelType = beforeLevelType;
    }

    public Integer getAfterLevel() {
        return afterLevel;
    }

    public void setAfterLevel(Integer afterLevel) {
        this.afterLevel = afterLevel;
    }

    public Integer getAfterLevelType() {
        return afterLevelType;
    }

    public void setAfterLevelType(Integer afterLevelType) {
        this.afterLevelType = afterLevelType;
    }

    public Long getPayId() {
        return payId;
    }

    public void setPayId(Long payId) {
        this.payId = payId;
    }

    public Integer getIsPayed() {
        return isPayed;
    }

    public void setIsPayed(Integer isPayed) {
        this.isPayed = isPayed;
    }

    public Long getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(Long payAmount) {
        this.payAmount = payAmount;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    @Override
    public String toString() {
        return "UserLevelLogDTO{" +
                "levelLogId=" + levelLogId +
                ", userId='" + userId + '\'' +
                ", nickName='" + nickName + '\'' +
                ", phone='" + phone + '\'' +
                ", levelIoType=" + levelIoType +
                ", levelChangeReason=" + levelChangeReason +
                ", beforeLevel=" + beforeLevel +
                ", beforeLevelType=" + beforeLevelType +
                ", afterLevel=" + afterLevel +
                ", afterLevelType=" + afterLevelType +
                ", payId=" + payId +
                ", payType=" + payType +
                ", isPayed=" + isPayed +
                ", payAmount=" + payAmount +
                ", createTime=" + createTime +
                ", createStartTime=" + createStartTime +
                ", createEndTime=" + createEndTime +
                '}';
    }
}
