package com.sptg.permissions.api.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sptg.common.core.beans.UserBean;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.util.List;

/**
 * title: Account
 * package: com.sptg.permissions.api.entity
 * description: 账号-实体类
 *
 *
 *
 */
@Getter
@Setter
@TableName(value = "account")
public class Account extends UserBean {

    /**
     * 主键
     */
//    @TableId(value = "l_id",type = IdType.ID_WORKER)
    @TableId(value = "l_id",type = IdType.AUTO)
    private Long id;

    /**
     * 所属机构Id
     */
    @TableField(value = "l_org_id")
    private Long orgId;

    /**
     * 根机构Id
     */
    @TableField(value = "l_root_org_id")
    private Long rootOrgId;

    /**
     * 登陆名
     */
    @TableField(value = "s_login_name")
    private String loginName;

    /**
     * 登陆密码 (key = sptg)
     */
    @TableField(value = "s_login_pwd")
    private String loginPwd;

    /**
     * 用户名
     */
    @TableField(value = "s_user_name")
    private String userName;

    /**
     * 所属机构名称
     */
    @TableField(value = "s_org_name")
    private String orgName;

    /**
     * 用户所属机构的存储位置
     */
    @TableField(value = "s_org_position")
    private String orgPosition;

    /**
     * 用户所属物业的存储位置
     */
    @TableField(value = "s_estate_position")
    private String estatePosition;

    /**
     * 用户头像路径
     */
    @TableField(value = "s_user_portrait_uri")
    private String userPortraitUri;

    /**
     * 用户手机号码
     */
    @TableField(value = "s_user_mobile")
    private String userMobile;

    /**
     * 备注
     */
    @TableField(value = "s_remark")
    private String remark;

    /**
     * 是否启用：{ 1：已启动，2：未启用 }
     */
    @TableField(value = "i_is_enable")
    private Integer isEnable;

    /**
     * 创建人Id
     */
    @TableField(value = "l_create_account_id")
    private Long createAccountId;
    /**
     * 创建ip
     */
    @TableField(value = "s_create_ip")
    private String createIp;

    /**
     * 删除标记：{ -1：已删除，0：正常 }
     */
    @TableField(value = "i_status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "t_create_date")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createDate;

    /**
     * 最后登录时间
     */
    @TableField(value = "t_last_login_date")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date lastLoginDate;

    /**
     * 最后登录ip
     */
    @TableField(value = "s_last_login_ip")
    private String lastLoginIp;

    /**
     *  是否开启微信小程序登录---实施小程序
     *  { 1：已启动，2：未启用 }
     */
    @TableField(value = "i_is_we_chat_login")
    private Integer isWeChatLogin;
    /**
     * 微信公众号下微信唯一标识--实施小程序
     */
    @TableField(value = "s_openid")
    private String openid;

    @TableField(value = "old_id")
    private String oldId;

    /**
     * 归属小区Id
     */
    @TableField(value = "xq_id")
    private Long xqId;

    /**
     * 归属小区名称
     */
    @TableField(value = "xq_name")
    private String xqName;

    /**
     * 是否已更改初始密码
     */
    @TableField(value = "i_had_update_pwd")
    private Integer hadUpdatePwd;

    /* -------------------------------------------------------------------------------------------------------------- */
    //  以下为字段非表字段
    /* -------------------------------------------------------------------------------------------------------------- */

    /**
     * 机构信息
     */
    @TableField(exist = false)
    private Organization organization;

    /**
     * 可操作的菜单列表
     */
    @TableField(exist = false)
    private List<Menu> menuList;

    /**
     * 角色列表
     */
    @TableField(exist = false)
    private List<Role> roleList;





}
