package com.jeequan.jeepay.db.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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jeequan.jeepay.core.model.BaseModel;
import com.jeequan.jeepay.db.typehandler.EncryptTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * <p>
 * 系统用户表
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2021-04-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "t_sys_user", autoResultMap = true)
public class SysUserEntity extends BaseModel {

    //gw
    public static LambdaQueryWrapper<SysUserEntity> gw(){
        return new LambdaQueryWrapper<>();
    }

    /**
     * 系统用户ID
     */
    @TableId(value = "sys_user_id", type = IdType.AUTO)
    private Long sysUserId;

    /**
     * 登录用户名
     */
    private String loginUsername;

    /**
     * 真实姓名
     */
    private String realname;

    /**
     * 手机号
     */
    private String telphone;

    /**
     * 性别 0-未知, 1-男, 2-女
     */
    private Byte sex;

    /**
     * 头像地址
     */
    private String avatarUrl;

    /**
     * 员工编号
     */
    private String userNo;

    /**
     * 邀请码
     */
    private String inviteCode;

    /**
     * 用户类型： 1-超级管理员 2-普通用户 3-拓展员
     */
    private Byte userType;

    /**
     * 团队ID
     */
    private Long teamId;

    /**
     * 是否队长 1-是 0-否
     */
    private Byte isTeamLeader;

    /**
     * 状态 0-停用 1-启用
     */
    private Byte state;

    /**
     * 所属系统： MGR-运营平台, MCH-商户中心
     */
    private String sysType;

    /**
     * 所属商户ID / 0(平台)
     */
    private String belongInfoId;

    /**
     * MFA绑定状态 0-未绑定 1-已绑定
     */
    private Byte mfaBindState;

    /**
     * MFA验证秘钥
     */
    @TableField(typeHandler = EncryptTypeHandler.class)
    private String mfaSecretKey;

    /**
     * 预留信息（最多十个字）
     */
    private String safeWord;

    /**
     * 密码过期时间
     */
    private Date pwdExpiredTime;

    /**
     * 最后一次重置密码时间
     */
    private Date lastResetPwdTime;

    /**
     * 上次登录时间
     */
    private Date lastLoginTime;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 更新时间
     */
    private Date updatedAt;
}
