package com.bonus.sgzb.auth.form;

import com.bonus.sgzb.auth.enums.AccountTypeEnum;
import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
*
* @author zhangshuwei
* @create
**/
@Data
public class UserAccount extends BaseEntity {


    /**
    * 父ID
    */
    private Long pid;
    /**
     * 同步过来的用户id
     */
    private String synUserId;
    /**
     *  同步过来的父ID
     */
    private String synPid;
    /**
    * 账号类型，1，运营方，2.采购商，3供应商
    */
    private Integer accountType;

    private String accountTypeShow;
    /**
    * 用户姓名
    */
    private String userName;
    /**
    * 账号
    */
    private String accountName;
    /**
    * 密码
    */
    private String password;
    /**
    * 电话
    */
    private String mobile;
    /**
    * 邮箱
    */
    private String email;
    /**
    * 头像url
    */
    private String avatarPicSrc;
    /**
    * 账号来源 1 导入，2 注册
    */
    private Integer source;
    /**
    * 是否是管理员 0不是 1是
    */
    private Integer administrator;
    /**
     * 供应商专用1.电商供应商（线上），2 非电商供应商（线下）
     */
    private Integer channel;
    /**
    * 用户状态，0停用，1启用
    */
    private Integer userStatus;
    /**
    * 是否子账号（0非子账号,1=子账号)
    */
    private Integer subAccountType;
    /**
    * 用户所属核算单位组织机构编码
    */
    private Long legalEntityOrganizationId;
    /**
    * 用户所属核算单位组织机构名称
    */
    private String legalEntityOrganizationName;
    /**
    * 用户所属组织机构编码
    */
    private Long departmentOrganizationId;
    /**
    * 用户所属组织机构编码
    */
    private String departmentOrganizationName;
    /**
    * 系统3.0 对应账号，采购人身份会用到
    */
    private String systemAccount;
    /**
     * 系统3.0对应的组织机构id
     */
    private String systemOrganizationId;
    /**
    * 系统3.0对应的组织机构
    */
    private String systemOrganization;
    /**
    * 更新时间
    */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updated;
    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date created;

    private String token;
    /** 选中状态 */
    @ApiModelProperty(value = "选中状态true 选中，false未选中")
    private boolean lay_is_checked;

    private Long shopId;

    @ApiModelProperty(name = "supplierStatus",value = "供应商状态")
    private Integer supplierStatus;

    @ApiModelProperty(name = "roleName",value = "账号角色名称")
    private String roleName;

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

    private Long platformId;

    @ApiModelProperty(name = "企业或个人")
    private Integer isPersonal;

    @ApiModelProperty(name = "是否开通采购业务")
    private Integer isBuyer;

    @ApiModelProperty(name = "是否开通供应业务")
    private Integer isSeller;

    /** 所属企业id **/
    private Long enterpriseId;

    /** 是否设置为个人 **/
    private Integer isSetPersonal;

    /** 所属企业编码 **/
    private String enterpriseCode;


    private String externalId;

    @ApiModelProperty(name = "id集合")
    private List<Long> userIdList;
    /**
     * 是否进行展示 , true展示，false不展示
     */
    @ApiModelProperty(name = "showedVerificationCode", value = "是否进行展示 , true展示，false不展示")
    private boolean showedVerificationCode;
    /**
     * 校验码
     */
    @ApiModelProperty(name = "verificationCode", value = "校验码")
    private String verificationCode;

    @ApiModelProperty(name = "tagId", value = "标签Id")
    private Long tagId;

    public String getAccountTypeShow() {
        return AccountTypeEnum.getView(this.accountType);
    }

    public void setAccountTypeShow(String accountTypeShow) {
        this.accountTypeShow = accountTypeShow;
    }

    /**
     * 组织机构全路径
     */
    @ApiModelProperty(name = "fullName", value = "组织机构全路径")
    private String fullName;

    /**
     * 验证码
     */
    @ApiModelProperty(name = "code",value = "验证码")
    private String code;

    /**
     * 注销状态：1未注销，0已注销
     */
    @ApiModelProperty(name = "cancelledStatus",value = "注销状态：1未注销，0已注销")
    private Integer cancelledStatus;

    /**
     * 头像url
     */
    @ApiModelProperty(name = "headPortraitUrl",value = "头像url")
    private String headPortraitUrl;

}
