package com.muchinfo.mtp3pojos.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.muchinfo.mtp3common.EncryptAnnotation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 网上开户用户表 (开户成功删除记录)
 * </p>
 *
 * @author XKF
 * @since 2024-05-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("WSKH_USERINFO")
@ApiModel(value = "WskhUserinfo对象", description = "网上开户用户表 (开户成功删除记录)")
@AllArgsConstructor
@NoArgsConstructor
@Builder
@KeySequence(value = "SEQ_WSKH_USERINFO")
public class WskhUserinfo extends Model<WskhUserinfo> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户ID(自增ID)SEQ_WSKH_USERINFO")
    @TableId(value = "USERID", type = IdType.INPUT)
    private Long userid;

    @ApiModelProperty(value = "用户姓名")
    @TableField("USERNAME")
    private String username;

    @ApiModelProperty(value = "性别 - 0:女 1:男")
    @TableField("SEX")
    private Integer sex;

    @ApiModelProperty(value = "证件类型")
    @TableField("CARDTYPE")
    private Integer cardtype;

    @ApiModelProperty(value = "证件号码 (加密存储)")
    @EncryptAnnotation
    @TableField("CARDNUM")
    private String cardnum;

    @ApiModelProperty(value = "证件地址(用于存储通讯详情地址)")
    @TableField("CARDADDRESS")
    private String cardaddress;

    @ApiModelProperty(value = "手机号码 (加密存储)")
    @TableField("MOBILEPHONE")
    @EncryptAnnotation
    private String mobilephone;

    @ApiModelProperty(value = "微信号   (加密存储)")
    @TableField("WECHAT")
    @EncryptAnnotation
    private String wechat;

    @ApiModelProperty(value = "Email地址(加密存储)")
    @TableField("EMAIL")
    @EncryptAnnotation
    private String email;

    @ApiModelProperty(value = "IP地址")
    @TableField("IPADDRESS")
    private String ipaddress;

    @ApiModelProperty(value = "半身照地址")
    @TableField("HALFBODYPHOTOURL")
    private String halfbodyphotourl;

    @ApiModelProperty(value = "正面证件照地址")
    @TableField("CARDFRONTPHOTOURL")
    private String cardfrontphotourl;

    @ApiModelProperty(value = "背面证件照地址")
    @TableField("CARDBACKPHOTOURL")
    private String cardbackphotourl;

    @ApiModelProperty(value = "银行编码")
    @TableField("BANKID")
    private String bankid;

    @ApiModelProperty(value = "银行名称")
    @TableField("BANKNAME")
    private String bankname;

    @ApiModelProperty(value = "银行帐号 (加密存储)")
    @TableField("BANKACCOUNT")
    @EncryptAnnotation
    private String bankaccount;

    @ApiModelProperty(value = "银行卡正面照地址")
    @TableField("BANKCARDFRONTPHOTOURL")
    private String bankcardfrontphotourl;

    @ApiModelProperty(value = "银行卡背面照地址")
    @TableField("BANKCARDBACKPHOTOURL")
    private String bankcardbackphotourl;

    @ApiModelProperty(value = "机构代码")
    @TableField("AREACODE")
    private String areacode;

    @ApiModelProperty(value = "机构Id")
    @TableField("AREAID")
    private Long areaid;

    @ApiModelProperty(value = "所属会员ID")
    @TableField("MEMBERAREAID")
    private Long memberareaid;

    @ApiModelProperty(value = "经纪人ID(所属客户经理-千海金)")
    @TableField("BROKERID")
    private String brokerid;

    @ApiModelProperty(value = "交易系统帐号Id (加密存储)")
    @TableField("ACCOUNTID")
    private Long accountid;

    @ApiModelProperty(value = "登录帐号 (加密存储)")
    @TableField("LOGINCODE")
    private String logincode;

    @ApiModelProperty(value = "开户方式 -  1:管理端开户 2:网上开户注册(会员官网-手机号) 3:微信开户 4:网页交易端注册 5:安卓手机端注册 6:苹果手机端注册 7:PC交易端注册 8:微信快速开户 9:支付宝快速开户 10:手机号快速开户 11:网上开户注册(会员官网-微信认证) 12:网上开户注册(会员官网-支付宝认证)")
    @TableField("OPENMODE")
    private Integer openmode;

    @ApiModelProperty(value = "开户状态 -   1:未提交 2: 待初审 3:初审拒绝 4:待复审 5:复审拒绝 6:测评不通过")
    @TableField("USERSTATE")
    private Integer userstate;

    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

    @ApiModelProperty(value = "是否有效 (删除后标记为失效) - 0:无效  1:有效")
    @TableField("ISVALIDATE")
    private String isvalidate;

    @ApiModelProperty(value = "开户申请时间")
    @TableField("CREATETIME")
    private Date createtime;

    @ApiModelProperty(value = "修改时间")
    @TableField("MODIFIEDTIME")
    private Date modifiedtime;

    @ApiModelProperty(value = "修改人帐号")
    @TableField("MODIFIEDBY")
    private Long modifiedby;

    @ApiModelProperty(value = "REMOVEBEFORESTATUS")
    @TableField("REMOVEBEFORESTATUS")
    private Integer removebeforestatus;

    @ApiModelProperty(value = "签约类型")
    @TableField("CUSBANKID")
    private String cusbankid;

    @ApiModelProperty(value = "签约类型名称")
    @TableField("CUSBANKNAME")
    private String cusbankname;

    @ApiModelProperty(value = "签约pdf文件")
    @TableField("SIGNPDFURL")
    private String signpdfurl;

    @ApiModelProperty(value = "推荐人编码")
    @TableField("REFERRAL")
    private String referral;

    @ApiModelProperty(value = "开户支行")
    @TableField("SUBBRANCH")
    private String subbranch;

    @ApiModelProperty(value = "银行卡正面地址")
    @TableField("BANKPICTUREURL")
    private String bankpictureurl;

    @ApiModelProperty(value = "审核时间")
    @TableField("AUDITIME")
    private Date auditime;

    @ApiModelProperty(value = "审核人")
    @TableField("AUDITEDBY")
    private Date auditedby;

    @ApiModelProperty(value = "视频地址")
    @TableField("VIDEOURL")
    private String videourl;

    @ApiModelProperty(value = "账户一号签签约状态")
    @TableField("SIGNEDSTATUS")
    private Integer signedstatus;

    @ApiModelProperty(value = "用户信息类型 - 1:个人  2:企业")
    @TableField("USERINFOTYPE")
    private Integer userinfotype;

    @ApiModelProperty(value = "客户名称(企业名称)")
    @TableField("CUSTOMERNAME")
    private String customername;

    @ApiModelProperty(value = "企业性质( 企业) - 1:国有控股企业 2:集体控股企业 3:私人控股企业 4:港澳台商控股企业 5:外商控股企业 6:其它")
    @TableField("BIZNATURE")
    private Integer biznature;

    @ApiModelProperty(value = "企业经营范围(企业)")
    @TableField("BIZSCOPE")
    private String bizscope;

    @ApiModelProperty(value = "法人姓名(企业)")
    @TableField("LEGALPERSONNAME")
    private String legalpersonname;

    @ApiModelProperty(value = "联系人")
    @TableField("CONTACTNAME")
    private String contactname;

    @ApiModelProperty(value = "国家")
    @TableField("COUNTRYID")
    private Long countryid;

    @ApiModelProperty(value = "省")
    @TableField("PROVINCEID")
    private Long provinceid;

    @ApiModelProperty(value = "市")
    @TableField("CITYID")
    private Long cityid;

    @ApiModelProperty(value = "地区")
    @TableField("DISTRICTID")
    private Long districtid;

    @ApiModelProperty(value = "邮政编码")
    @TableField("POSTALCODE")
    private String postalcode;

    @ApiModelProperty(value = "公司(个人)")
    @TableField("COMPANY")
    private String company;

    @ApiModelProperty(value = "法人身份证正面照地址")
    @TableField("LEGALCARDFRONTPHOTOURL")
    private String legalcardfrontphotourl;

    @ApiModelProperty(value = "法人身份证背面照地址")
    @TableField("LEGALCARDBACKPHOTOURL")
    private String legalcardbackphotourl;

    @ApiModelProperty(value = "其它图片地址[使用分号分隔]")
    @TableField("OTHERURL")
    private String otherurl;

    @ApiModelProperty(value = "用户类型 - 1:投资者 2:机构 5：投资者 6:客户")
    @TableField("USERTYPE")
    private Integer usertype;

    @ApiModelProperty(value = "QQ(加密存储")
    @TableField("QQ")
    @EncryptAnnotation
    private String qq;

    @ApiModelProperty(value = "联系电话(加密存储)")
    @TableField("TELPHONE")
    @EncryptAnnotation
    private String telphone;

    @ApiModelProperty(value = "附件1")
    @TableField("ATTACHMENT1")
    private String attachment1;

    @ApiModelProperty(value = "附件2")
    @TableField("ATTACHMENT2")
    private String attachment2;

    @ApiModelProperty(value = "收款人名称")
    @TableField("BANKACCOUNTNAME")
    private String bankaccountname;

    @ApiModelProperty(value = "昵称：默认为手机号脱敏(139****9999) 或 名称脱敏(张**) ")
    @TableField("NICKNAME")
    private String nickname;

    @ApiModelProperty(value = "头像地址")
    @TableField("HEADURL")
    private String headurl;

    @ApiModelProperty(value = "手机号码[明文-尚志]")
    @TableField("MOBILE2")
    private String mobile2;

    @ApiModelProperty(value = "企业类型 - 1:进口/生产 2:销售 3:零售 4:运输 5:仓储")
    @TableField("BIZTYPE")
    private Integer biztype;

    @ApiModelProperty(value = "授权委托书")
    @TableField("PROXYSTATEMENTURL")
    private String proxystatementurl;

    @ApiModelProperty(value = "联系人证件正面图片地址")
    @TableField("CONTACTCARDFRONTPHOTOURL")
    private String contactcardfrontphotourl;

    @ApiModelProperty(value = "联系人证件背面图片地址")
    @TableField("CONTACTCARDBACKPHOTOURL")
    private String contactcardbackphotourl;

    @ApiModelProperty(value = "附件3")
    @TableField("ATTACHMENT3")
    private String attachment3;

    @ApiModelProperty(value = "附件4")
    @TableField("ATTACHMENT4")
    private String attachment4;

    @ApiModelProperty(value = "附件5")
    @TableField("ATTACHMENT5")
    private String attachment5;

    @ApiModelProperty(value = "审核来源 - 1:管理端 2:终端")
    @TableField("AUDITSRC")
    private Integer auditsrc;

    @ApiModelProperty(value = "纳税人识别号")
    @TableField("TAXPAYERNUM")
    private String taxpayernum;

    @ApiModelProperty(value = "登录密码")
    @TableField("LOGINPWD")
    private String loginpwd;

    @ApiModelProperty(value = "协议文件IDs(逗号分隔)")
    @TableField("AGREEMENTIDS")
    private String agreementids;

    @ApiModelProperty(value = "生日(个人:年月日)")
    @TableField("BIRTHDAY")
    private Date birthday;

    @ApiModelProperty(value = "授信额度(金瑞)")
    @TableField("CREDITQUOTA")
    private BigDecimal creditquota;

    @TableField(exist = false)
    private Integer allocated;
    @ApiModelProperty(value = "签约类型与签约银行是否显示：0为否,1为是")
    @TableField(exist = false)
    private String isBank;
    @ApiModelProperty(value = "推荐人名称")
    @TableField(exist = false)
    private String referralname;
    @ApiModelProperty(value = "审核状态，1 通过，2 拒绝")
    @TableField(exist = false)
    private Integer auditflag;
    @ApiModelProperty(value = "管理员账号")
    @TableField(exist = false)
    private String smlogincode;
    @ApiModelProperty(value = "管理员名称")
    @TableField(exist = false)
    private String loginname;
    @ApiModelProperty(value = "管理员密码")
    @TableField(exist = false)
    private String smpassword;
    @ApiModelProperty(value = "所属会员")
    @TableField(exist = false)
    private String memberusername;
    @ApiModelProperty(value = "经纪人")
    @TableField(exist = false)
    private String brokername;
    @ApiModelProperty(value = "所属机构")
    @TableField(exist = false)
    private String areaname;
    @ApiModelProperty(value = "地址")
    @TableField(exist = false)
    private String pathname;

    @Override
    public Serializable pkVal() {
        return this.userid;
    }

}
