package com.cnooc.expert.controller.expert.model.request;

import lombok.Builder;
import lombok.Data;

import java.util.List;

@Data
public class ExpertInfoUpdateApiReq {

    private String businessId;

    private String pinQiStartTime;

    private String pinQiEndTime;

    private Bean bean;

    private SysShenHeJieGuo sysShenHeJieGuo;

    private SysShenHeJieGuo xuQiShenHeJieGuo;

    private ZhuangTaiXiuGaiJiLuSq xuQiXiuGaiJiLuSq;

    private SysShenHeJieGuo tuiKuShenHeJieGuo;

    private ZhuangTaiXiuGaiJiLuSq tuiKuGaiJiLuSq;

    private SysShenHeJieGuo yiLeiShenHeJieGuo;

    private SysShenHeJieGuo rukuShenHeJieGuo;

    private List<Jl> jlList;

    private List<Zg> zgList;

    private List<Zc> zcList;

    private List<Pb> pbList;

    private List<Hb> hbList;

    private List<Ps> psList;

    private List<Language> languageList;

    private List<XueLi> xueLiList;

    private List<FuJian> fuJianList;


    @Data
    @Builder
    public static class Bean {
        private String adAccount;
        private Integer age;
        private String authPassWithImport;
        private String auths;
        private String base64FanMianFuJian;
        private String base64FanMianFuJianName;
        private String base64FuJian;
        private String base64FuJianName;
        private String base64Photo;
        private String base64PhotoName;
        private String baseAuths;
        private String baseCode;
        private String baseGuid;
        private String baseMobile;
        private String baseName;
        private String baseSFZH;
        private String baseShenPiZhuangTai;
        private String baseZhuangTai;
        private String biYeYuanXiao;
        private Integer bianGengXuHao;
        private String birthday;
        private String buNengRuXuanQingKong;
        private String byzFileGuid;
        private String canYuXiangMu;
        private String city;
        private Long createTime;
        private String createTimeText;
        private String creatorName;
        private String danRenQiTaZhuanJia;
        private String danweiGuid;
        private String department;
        private String domainName;
        private String email;
        private String fanMianFuJianGuids;
        private String fax;
        private String fuJianGuids;
        private String gongZuoBeiZhu;
        private String gongZuoDanWei;
        private String gongZuoDanWeiBH;
        private String gongZuoDanWeiDiZhi;
        private String gongZuoPhone;
        private String gongZuoPost;
        private Long gongZuoTime;
        private String gongZuoZhiWu;
        private String gongZuoZhuanYeName;
        private String gongZuoZhuanYeYears;
        private Integer gongZuoZhuangTai;
        private String graduationDate;
        private Boolean hasLianJieChuLiYiJian;
        private String huoJiangQingKuang;
        private Boolean inGroup;
        private Boolean isHasLianJieChuLiYiJian;
        private Boolean isQualified;
        private Boolean isReadRuKuPromise;
        private Boolean isSenior;
        private Boolean isZhiYeZiGe;
        private String jgdmFileGuid;
        private String jiTuanErJiDanWeiCode;
        private String jiTuanErJiDanWeiName;
        private String jiaTingDiZhi;
        private String jiaTingPhone;
        private String jiaTingPost;
        private String jianKangZhuangKuang;
        private String jinJiLianXiRenGuid;
        private String jinJiLianXiRenName;
        private String jinJiLianXiRenPhone;
        private String kaoShiFenShu;
        private Integer leiJiFenZhi;
        private Long leiJiZhanTingTime;
        private String lianJieYiJianShuFuJianGuid;
        private String lsFuJian;
        private String minZu;
        private String minZuText;
        private String mobile;
        private String mobileGJQHText;
        private String mobileGuoJiQuHao;
        private String modifierName;
        private Long modifyTime;
        private String modifyTimeText;
        private Boolean needTest;
        private String photoGuid;
        private String pingBiaoChangZhuDiQu;
        private String pingBiaoChangZhuDiQuName;
        private Boolean pingBiaoIsYingJi;
        private String pingBiaoQiTaDiQu;
        private String pingBiaoTuiJianLX;
        private String pingBiaoYingJiDiQu;
        private Long pinqiEndTime;
        private Long pinqiStartTime;
        private String professionLevel;
        private String qiTaLianXiFangShi;
        private Boolean qualified;
        private Boolean readRuKuPromise;
        private Long readRuKuPromiseTime;
        private Integer ruKuZhuangTai;
        private Boolean senior;
        private Boolean sex;
        private String sfzFileGuid;
        private String sfzFuJians;
        private String shenFenZheng;
        private Long shenHeEndTime;
        private Long shenHeStartTime;
        private String shenPiRen;
        private String shenPiShiJian;
        private String shenPiShiJianText;
        private String shenPiYiJian;
        private Integer shenPiZhuangTai;
        private Long shenQingEndTime;
        private Integer shenQingLeiXing;
        private Long shenQingStartTime;
        private Boolean shiFouYiFaZhuanJia;
        private String subjectCode;
        private String subjectId;
        private String subjectName;
        private Integer subjectType;
        private String suoShuBuMeng;
        private String suoShuDanWeiName;
        private String suoShuHangYe;
        private String suoShuZhaoBiaoDaiLi;
        private String suoZaiQitaZhuanJiaKu;
        private String tenantId;
        private String tenantId_;
        private String tenantName;
        private Long tiJiaoTime;
        private String tiJiaoTimeText;
        private String tuiKuYuanYin;
        private String waiYuChengDu;
        private String xueLi;
        private String xueLiTxt;
        private String xueLiZhuanYe;
        private String xueWei;
        private String xueWeiTxt;
        private String xueWeiZhuanYe;
        private String yinHang;
        private String yinHang1;
        private String yinHangKa;
        private String yinHangKaFileGuid;
        private String yingJiZhuangTai;
        private String zhangHao;
        private String zhaoBiaoDanWeiBianHao;
        private String zhaoBiaoDanweiMingChen;
        private String zhengJianType;
        private String zhengZhiMianMao;
        private Boolean zhiYeZiGe;
        private String zhuanJiaCode;
        private Integer zhuanJiaFenJi;
        private Integer zhuanJiaFenLei;
        private String zhuanJiaGuid;
        private String zhuanJiaName;
        private String zhuanJiaShiXiangGuid;
        private Integer zhuanJiaSourceType;
        private String zhuanJiaSuoZaiDiGuids;
        private String zhuanJiaSuoZaiDiNames;
        private String zhuanJiaType;
        private Integer zhuanJiaZhuangTai;
        private String zhuanJiaZiZhiTiaoJian;
        private String zhuanJiaZongHeBianHao;
        private String zhuanYeJingLi;
        private String zhuanYeTeChang;
        private Integer zhuanjiaQinRenQi;
        private Long ziDongZanTingEndTime;
        private Long ziDongZanTingStartTime;
    }

    @Data
    @Builder
    public static class Jl {
        private String buMenName;
        private Long createTime;
        private String createTimeText;
        private String creatorName;
        private String danWeiBH;
        private String danWeiName;
        private String gongZuoMiaoShu;
        private String jingLiGuid;
        private Long liZhiTime;
        private String liZhiTimeText;
        private String modifierName;
        private Long modifyTime;
        private String modifyTimeText;
        private Long riZhiTime;
        private String riZhiTimeText;
        private String shenFenZheng;
        private Long tenantId;
        private String tenantName;
        private String zhiWu;
        private String zhuanJiaGuid;
        private String zhuanJiaShiXiangGuid;
        private String ziXinXiGuid;
    }

    @Data
    @Builder
    public static class Zg {
        private String base64ZgFile;
        private String base64ZgFileName;
        private Long createTime;
        private String createTimeText;
        private String creatorName;
        private String dictGuid;
        private Long huoQuDate;
        private String modifierName;
        private Long modifyTime;
        private String modifyTimeText;
        private Long obtainTime;
        private String qiTaZiGe;
        private String zgFileGuid;
        private String zhuanJiaGuid;
        private String zhuanJiaShiXiangGuid;
        private String ziGeGuid;
        private String ziGeName;
        private String ziGeZhengShuHao;
        private String ziXinXiGuid;
    }

    @Data
    @Builder
    public static class Zc {
        private String base64ZcFile;

        private String base64ZcFileName;

        private Long createTime;

        private String createTimeText;

        private String creatorName;

        private String dictGuid;

        private String modifierName;

        private Long modifyTime;

        private String modifyTimeText;

        private Long pingDingTime;

        private String pingDingTimeText;

        private String zcFileGuid;

        private String zhiChengGuid;

        private String zhiChengName;

        private String zhiChengZhuanYe;

        private String zhuanJiaGuid;

        private String zhuanJiaShiXiangGuid;

        private String ziXinXiGuid;
    }


    @Data
    @Builder
    public static class Pb {
        private Long createTime;
        private String createTimeText;
        private String creatorName;
        private Long dongJieEndTime;
        private String dongJieFuJianGuid;
        private String dongJieOperator;
        private String dongJieReason;
        private Long dongJieSatrtTime;
        private Long dongJieTime;
        private Boolean isPrimary;
        private Boolean isScarce;
        private String jieDongFuJianGuid;
        private String jieDongOperator;
        private String jieDongReason;
        private Long jieDongTime;
        private String modifierName;
        private Long modifyTime;
        private String modifyTimeText;
        private String parentGuid;
        private String path;
        private String pingBiaoZhuanYeGuid;
        private Integer professionLevel;
        private String zhuanJiaGuid;
        private String zhuanJiaLeiBie;
        private String zhuanJiaShiXiangGuid;
        private String zhuanYeBH;
        private String zhuanYeGuid;
        private String zhuanYeJiBie;
        private String zhuanYeName;
        private Integer zhuanYeNianXian;
        private Integer zhuanYeStatus;
        private String zhuanYeXiangGuanJingLi;
        private String ziXinXiGuid;
    }

    @Data
    @Builder
    public static class Hb {
        private String danWeiBH;
        private String danWeiName;
        private String huiBiGuid;
        private String huiBiMiaoShu;
        private String huiBiMiaoShuStr;
        private String zhuanJiaGuid;
        private String zhuanJiaShiXiangGuid;
        private String ziXinXiGuid;
    }

    @Data
    @Builder
    public static class Ps {
        private Long pinQiEndTime;
        private String pinQiEndTimeText;
        private Long pinQiStartTime;
        private String pinQiStartTimeText;
        private String pinShuFuJianGuid;
        private String pingShuGuid;
        private String zhuanJiaGuid;
        private Integer zhuanJiaQinRenQi;
    }

    @Data
    @Builder
    public static class Language {
        private String languageGuid;
        private String zhuanJiaGuid;
        private String zhuanJiaShiXiangGuid;
        private String languageName;
        private String languageId;
        private String shuLianChengDu;
        private String shuLianChengDuId;
    }

    @Data
    @Builder
    public static class XueLi {
        private Long biYeTime;
        private String biYeYuanXiao;
        private String biYeYuanXiaoGuid;
        private String byzFileGuid;
        private Long createTime;
        private String creatorGuid;
        private String creatorName;
        private Long creatorTime;
        private Boolean isImport;
        private Boolean isZuiGaoXueLi;
        private Boolean isZuiGaoXueWei;
        private String modifier;
        private String modifierName;
        private Long modifyTime;
        private String suoShuZhaoBiaoDaiLi;
        private String xueLiBh;
        private String xueLiDictGuid;
        private String xueLiGuid;
        private String xueLiName;
        private String xueLiZhuanYe;
        private String xueLiZhuanYeBh;
        private String xueLiZhuanYeGuid;
        private String xueWeiBh;
        private String xueWeiDictGuid;
        private String xueWeiName;
        private String xwzFileGuid;
        private String zhuanJiaGuid;
        private String zhuanJiaShiXiangGuid;
        private String ziXinXiGuid;
    }

    @Data
    @Builder
    public static class FuJian {
        private Long createTime;
        private String creatorGuid;
        private String creatorName;
        private String downloadUrl;
        private String feiQiRenGuid;
        private String feiQiRenName;
        private Long feiQiTime;
        private String fileDescription;
        private String fileName;
        private Integer fileSize;
        private Integer fileType;
        private String fuJianGuid;
        private Boolean isFeiQi;
        private String modifierGuid;
        private String modifierName;
        private Long modifyTime;
        private String shenHeRenGuid;
        private String shenHeRenName;
        private Integer shenHeStatus;
        private Long shenHeTime;
        private String shenHeYiJian;
        private Long tiJiaoTime;
        private String zhuanJiaFuJianGuid;
        private String zhuanJiaGuid;
        private String zhuanJiaShiXiangGuid;
        private String ziXinXiGuid;
    }

    @Data
    @Builder
    public static class SysShenHeJieGuo {
        private String bianGengXuHao;
        private String businessId;
        private Long createTime;
        private String createTimeText;
        private String creatorName;
        private String currentNode;
        private String daiShenRenGuids;
        private String daiShenRenNames;
        private Boolean isFinish;
        private String mobile;
        private String modifierName;
        private Long modifyTime;
        private String modifyTimeText;
        private Boolean nengCheHui;
        private String photoGuid;
        private String remark;
        private String sequence;
        private String shenFenZheng;
        private String shenHeRenGuid;
        private String shenPiBuMenGuid;
        private String shenPiBuMenName;
        private String shenPiJiLuGuid;
        private String shenPiRen;
        private String shenPiShiJian;
        private String shenPiYiJian;
        private Integer shenPiZhuangTai;
        private Integer shenQingLeiXing;
        private Boolean shiFouZhuanJiao;
        private String shiXiangGuid;
        private String shiXiangName;
        private String shiXiangType;
        private String shouLiRen;
        private Long shouLiTime;
        private String shouLiTimeText;
        private Integer shouLiZhuanTai;
        private String tiJiaoRenGuid;
        private String tiJiaoRenName;
        private Long tiJiaoTime;
        private String tiJiaoTimeText;
        private String tuiKuYuanYin;
        private String workFlowBusinessId;
        private String workFlowBusinessIdNew;
        private String xiaJiShenHeRenGuid;
        private String xiaJiShenHeRenName;
        private String xiangMuGuid;
        private String zhuanJiaGuid;
        private String zhuanJiaShiXiangGuid;
    }

    @Data
    @Builder
    public static class ZhuangTaiXiuGaiJiLuSq {

        private String jiluSqGuid;
        private String zhuanJiaGuid;
        private Short xiuGaiQianZhuangTai;
        private Short xiuGaiHouZhuangTai;
        private String xiuGaiLeiXing;
        private String xiuGaiYuanYin;
        private Long createTime;
        private String creatorName;
        private String creatorGuid;
        private Long startTime;
        private Long endTime;
        private Boolean isChanged;
        private String fuJianGuid;
        private Boolean isRenew;
        private Short zhuanJiaQinRenQi;
        /**
         * 解聘原因，10:专家主动退库,20:到期清退,30:到龄清退,40:管理员清退
         */
        private Short jiePinYuanYinType;
        /**
         * 续期原因类型,0:其他;1:聘任到期;
         */
        private Short renewYuanyinType;
        private String renewJutiYuanyin;
    }

}
