package com.mcwl.memberCenter.domain;


import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import com.mcwl.memberCenter.enums.MemberEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 会员表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("mem_member")
@ApiModel(description = "会员表")
public class Member extends BaseEntity {

    @TableId
    @ApiModelProperty(value = "会员ID")
    private Long id;

    // 用户ID
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    // 会员等级ID
    @ApiModelProperty(value = "会员等级ID")
    private Long memberLevelId;

    // 会员开始时间
    @ApiModelProperty(value = "会员开始时间")
    private Date startDate;

    // 会员结束时间
    @ApiModelProperty(value = "会员结束时间")
    private Date endDate;

    // 会员积分
    @ApiModelProperty(value = "会员积分")
    private Double points;

    // 订阅状态 active（活跃，连续包月）、inactive（非活跃，不连续包月）、pending（待支付）和expired（过期）
    @ApiModelProperty(value = "订阅状态 active（活跃，连续包月）、inactive（非活跃，不连续包月）、pending（待支付）和expired（过期）")
    private MemberEnum subscriptionStatus;

    // 支付方式
    @ApiModelProperty(value = "支付方式")
    private String paymentMethod;

    // 上次支付时间
    @ApiModelProperty(value = "上次支付时间")
    private Date lastPaymentDate;

    // 下次计费时间
    @ApiModelProperty(value = "下次计费时间")
    private Date nextBillingDate;

    // 上次登录时间
    @ApiModelProperty(value = "上次登录时间")
    private Date lastLoginDate;

    // 状态(0:正常 1:禁用)
    @ApiModelProperty(value = "状态(0:正常 1:禁用)")
    private String status;

}
