package com.fzm.mall.server.front.user.model;

import com.baomidou.mybatisplus.annotation.*;

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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 用户信息表
 * </p>
 *
 * @author fzm
 * @since 2021-01-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user")
@ApiModel(value="User对象", description="用户信息表")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户表自增id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "用户唯一标识")
    private String uid;

    @ApiModelProperty(value = "token")
    private String token;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "用户手机号码")
    private String phone;

    @ApiModelProperty(value = "address")
    private String address;

    @ApiModelProperty(value = "用户对外展示唯一id")
    private String userId;

    @ApiModelProperty(value = "用户头像地址")
    private String headUrl;

    @ApiModelProperty(value = "用户昵称")
    private String nickName;

    @ApiModelProperty(value = "币钱包账号")
    private String biAccount;

    @ApiModelProperty(value = "支付宝账号")
    private String aliAccount;

    @ApiModelProperty(value = "微信账号")
    private String wxAccount;

    @ApiModelProperty(value = "邀请码")
    private String inviteCode;

    @ApiModelProperty(value = "注册码")
    private String registerCode;

    private String payPassword;

    @ApiModelProperty(value = "信息入库时间")
    @TableField(fill = FieldFill.INSERT)
    private Long createTime;

    @ApiModelProperty(value = "信息更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateTime;

    @ApiModelProperty(value = "区号")
    private String area;

    @ApiModelProperty(value = "最后登录时间")
    private Long lastLogin;

    private Date birthday;

    private Integer sex;

    @ApiModelProperty(value = "是否设置支付密码")
    @TableField(exist = false)
    private Boolean isPayPassword;

}
