package com.sf.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sf.common.annotation.Excel;
import com.sf.common.core.domain.BaseEntity;

/**
 * 会员对象 User_member
 * 
 * @author ztzh
 * @date 2024-04-16
 */
public class UserMember extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 用户会员等级（0普通会员 1订阅会员 2月度会员） */
    @Excel(name = "用户会员等级", readConverterExp = "0=普通会员,1=订阅会员,2=月度会员")
    private Integer memberLevel;

    /** 会员等级为订阅会员时的订阅状态，未订阅就是取消了（0未订阅 1已订阅）  */
    @Excel(name = "会员等级为订阅会员时的订阅状态，未订阅就是取消了", readConverterExp = "0=未订阅,1=已订阅")
    private Integer subscriptionStatus;

    /** 关联的用户id */
    @Excel(name = "关联的用户id")
    private Long userId;

    /** 积分 */
    @Excel(name = "积分")
    private Long integration;

    /** 过期时间 */
    private Date expirationTime;

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

    public Long getId() 
    {
        return id;
    }
    public void setMemberLevel(Integer memberLevel) 
    {
        this.memberLevel = memberLevel;
    }

    public Integer getMemberLevel() 
    {
        return memberLevel;
    }
    public void setSubscriptionStatus(Integer subscriptionStatus) 
    {
        this.subscriptionStatus = subscriptionStatus;
    }

    public Integer getSubscriptionStatus() 
    {
        return subscriptionStatus;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setIntegration(Long integration) 
    {
        this.integration = integration;
    }

    public Long getIntegration() 
    {
        return integration;
    }
    public void setExpirationTime(Date expirationTime) 
    {
        this.expirationTime = expirationTime;
    }

    public Date getExpirationTime() 
    {
        return expirationTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("memberLevel", getMemberLevel())
            .append("subscriptionStatus", getSubscriptionStatus())
            .append("userId", getUserId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("integration", getIntegration())
            .append("expirationTime", getExpirationTime())
            .toString();
    }
}
