/*
 * Copyright (c) 2023 codvision.com All Rights Reserved.
 */

package com.codvision.authcore.bean;

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

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

/**
 * <p>
 * 系统用户展示信息
 * </p>
 *
 * @author lingee
 * @since 2023-11-09
 */
@Data
@ApiModel(value = "SysUserBean", description = "系统用户展示信息")
public class SysUserBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private String token;

    @ApiModelProperty("ID")
    private Long id;

    @ApiModelProperty("用户登陆名")
    private String loginName;

    @ApiModelProperty("登陆密码")
    private String password;

    @ApiModelProperty("用户真实姓名")
    private String name;

    @ApiModelProperty("用户联系方式")
    private String mobile;

    @ApiModelProperty("拓展字段:昵称")
    private String nickname;

    @ApiModelProperty("拓展字段:头像")
    private String avatarUrl;

    @ApiModelProperty("拓展字段:邮箱")
    private String email;

    @ApiModelProperty("浙政钉ID")
    private String zzdId;

    @ApiModelProperty("微信服务号openID")
    private String wxMpOpenid;

    @ApiModelProperty("删除标记,1:已删除,0:正常")
    private Short delFlag;

    @ApiModelProperty("逻辑删除辅助字段")
    private Short delKey;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("最近一次密码更新的时间")
    private Date pwdLastUpdatedTime;

    @ApiModelProperty("普通钉钉userid")
    private String dingTalkUid;

    @ApiModelProperty("微信unionId")
    private String wxUnionid;

    @ApiModelProperty("微信小程序openID")
    private String wxMaOpenid;

    @ApiModelProperty("三方同步来的用户唯一id")
    private String syncId;

    @ApiModelProperty("当前组织OID")
    private Integer activeOid;

    @ApiModelProperty("当前组织父级OID")
    private Integer activePoid;

    @ApiModelProperty("当前组织名称")
    private String activeOrgName;

    @ApiModelProperty("当前组织路径")
    private String activeOrgPath;

    @ApiModelProperty("当前角色ID")
    private Integer activeRoleId;

    @ApiModelProperty("当前角色名称")
    private String activeRoleName;

    @ApiModelProperty("当前角色编码")
    private String activeRoleCode;

    @ApiModelProperty("关联信息（组织与角色）")
    private List<UserAssociatedInfoBean> associatedInfos;

    @ApiModelProperty("是否已禁用")
    private Boolean isForbidden;

    @ApiModelProperty(value = "状态：0未读，1已读")
    private Integer readStatus;

    @ApiModelProperty(value = "通知消息是否撤回：0否，1是")
    private Integer flagDel;

    @ApiModelProperty("组织角色")
    private UserOrgRoleBean activeOrgRole;

    @ApiModelProperty("组织角色列表")
    private List<UserOrgRoleBean> orgRoles;
}
