package com.ningdatech.kqapi.sso.model.vo;

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

import java.util.List;

/**
 * @author CMM
 * @since 2024/04/07 11:19
 */
@Data
@ApiModel(value = "SsoUserInfoVO", description = "单点登录UserInfoVO")
public class SsoUserInfoVO {

    @ApiModelProperty("错误码")
    private String errorCode;

    @ApiModelProperty("错误信息")
    private String errorMsg;

    @ApiModelProperty("是否成功")
    private Boolean success;

    @ApiModelProperty("响应体")
    private Object data;

    @ApiModelProperty("用户类型 PERSON 个人、LEGAL_PERSON 法人")
    private String userType;

    @ApiModelProperty("个人用户信息 当前登录自然人的信息")
    private Object personInfo;

    @ApiModelProperty("主键")
    private String userId;

    @ApiModelProperty("个人姓名")
    private String userName;

    @ApiModelProperty("ID_CARD:身份证,PASSPORT:护\n" +
            "照,OFFICER_CARD:军官\n" +
            "证,MAINLAND_TRAVEL_PERMIT_FOR\n" +
            "_HONGKONG_AND_MACAO_RESIDENTS\n" +
            ":港澳居民来往内地通行\n" +
            "证,MAINLAND_TRAVEL_PERMIT_FOR\n" +
            "_TAIWAN_RESIDENTS:台湾居民来\n" +
            "往大陆通行\n" +
            "证,FOREIGN_PERMANENT_RESIDENT\n" +
            "_ID_CARD:外国人永久居留身份\n" +
            "证,FOREIGN_PASSPORT:外籍人士\n" +
            "护照,DIPLOMACY_PASSPORT:外交\n" +
            "护照,OFFICIAL_PASSPORT:公务护\n" +
            "照,SOLDIER_CARD:士兵\n" +
            "证,OFFICER_RETIRE_CARD:军官离\n" +
            "退休\n" +
            "证,GANG_AO_TAI_RESIDENCE_CART\n" +
            ":港澳台居民居住\n" +
            "证,GANG_AO_ID_CART:港澳居民身\n" +
            "份证,UNIFIED_SOCIAL_ID:统一社\n" +
            "会信用代码,OTHER:其他")
    private String idType;

    @ApiModelProperty("外部证件类型")
    private String outerIdType;

    @ApiModelProperty("证件编号")
    private String idNo;

    @ApiModelProperty("法人经办人时用户类型，评级")
    private String attnUserType;

    @ApiModelProperty("手机号")
    private String phone;

    @ApiModelProperty("邮箱")
    private String email;

    @ApiModelProperty("民族")
    private String nation;

    @ApiModelProperty("性别")
    private String gender;

    @ApiModelProperty("生日")
    private String birthday;

    @ApiModelProperty("身份散列值")
    private String certKey;

    @ApiModelProperty("额外属性")
    private Object attributes;

    @ApiModelProperty("法人用户信息，比如公司相关的信\n" +
            "息")
    private Object legalPersonInfo;

    @ApiModelProperty("法人名称")
    private String name;

    @ApiModelProperty("社会统一信用代码")
    private String unifiedSocialId;

    @ApiModelProperty("法人类型")
    private String orgType;

    @ApiModelProperty("经办人姓名")
    private String attnName;

    @ApiModelProperty("经办人手机号")
    private String attnPhone;

    @ApiModelProperty("经办人证件类型")
    private String attnIdType;

    @ApiModelProperty("经办人证件号码")
    private String attnIdNo;

    @ApiModelProperty("法人代表人姓名")
    private String principal;

    @ApiModelProperty("法人代表唯一键")
    private String principalUserId;

    @ApiModelProperty("法人唯一键")
    private String corpId;

    @ApiModelProperty("所属组织信息")
    private List<Object> organizationInfoList;

    @ApiModelProperty("组织主键")
    private String orgId;

    @ApiModelProperty("Alias for orgId")
    private String oid;

    @ApiModelProperty("父组织主键")
    private String parentId;

    @ApiModelProperty("Alias for parentId")
    private String pid;

    @ApiModelProperty("组织机构全称")
    private String fullName;

    @ApiModelProperty("组织后缀")
    private String devCoding;

    @ApiModelProperty("是否叶子标志")
    private Boolean leafFlag;

    @ApiModelProperty("排序号，从小到大")
    private Integer orderBy;
}
