package com.hz.pm.api.expert.model.vo;


import com.alibaba.fastjson.annotation.JSONField;
import com.hz.pm.api.expert.model.dto.DictionaryVO;
import com.hz.pm.api.external.model.vo.MhFileInfoVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * ExpertDetailVO
 * </p>
 *
 * @author WendyYang
 * @since 10:19 2023/12/26
 */
@Data
public class ExpertDetailVO {

    @ApiModelProperty("是否是技术专家")
    private Boolean isTechExpert;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

    @ApiModelProperty(value = "信创用户ID")
    private String mhUserId;

    @ApiModelProperty(value = "专家编号")
    private String mhExpertNo;

    @ApiModelProperty(value = "是否是浙政钉用户")
    private String isDingUser;

    @ApiModelProperty(value = "手机号")
    private String phoneNo;

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

    @ApiModelProperty(value = "专家姓名")
    private String expertName;

    @ApiModelProperty(value = "头像")
    private String avatarFile;

    private List<MhFileInfoVO> avatarFileDetail;

    @ApiModelProperty(value = "身份证号")
    private String idCard;

    @ApiModelProperty(value = "身份证文件路径")
    private String idCardFile;

    private List<MhFileInfoVO> idCardFileDetail;

    @ApiModelProperty(value = "办公电话")
    private String officePhone;

    @ApiModelProperty(value = "微信OpenID")
    private String wechatOpenId;

    @ApiModelProperty(value = "银行账号")
    private String bankNo;

    @ApiModelProperty(value = "银行")
    private String bank;

    @ApiModelProperty(value = "电子邮箱")
    private String email;

    @ApiModelProperty(value = "企业ID")
    private String mhCompanyId;


    @ApiModelProperty(value = "所在单位")
    private String unit;


    @ApiModelProperty(value = "单位性质")
    private String unitType;


    @ApiModelProperty(value = "通讯地址")
    private String address;


    @ApiModelProperty(value = "码值（1:绿码 2:黄码 3:红码）")
    private Integer star;


    @ApiModelProperty(value = "学历")
    private String education;


    @ApiModelProperty(value = "学校及专业")
    private String schoolMajor;


    @ApiModelProperty(value = "毕业时间")
    private LocalDate graduatedAt;


    @ApiModelProperty(value = "技术职称及评定时间")
    private String academicTitle;


    @ApiModelProperty(value = "毕业证书文件路径")
    private String graduationCertFile;

    private List<MhFileInfoVO> graduationCertFileDetail;

    @ApiModelProperty(value = "学位证书文件路径")
    private String degreeCertFile;

    private List<MhFileInfoVO> degreeCertFileDetail;


    @ApiModelProperty(value = "开始工作时间")
    private LocalDate startWorkAt;

    @ApiModelProperty(value = "经历")
    private String experience;

    @ApiModelProperty(value = "政治面貌")
    private String political;

    private String expertQrCodeBase64;

    @ApiModelProperty(value = "籍贯")
    private String hometown;

    @ApiModelProperty(value = "民族")
    private String nationality;

    @ApiModelProperty(value = "出生日期")
    private LocalDate birthday;

    @ApiModelProperty(value = "入库时间")
    @JSONField(format = "yyyy-MM-dd")
    private LocalDateTime inPutTime;

    @ApiModelProperty(value = "是否入库")
    private String isPut;

    @ApiModelProperty(value = "发证日期")
    @JSONField(format = "yyyy-MM-dd")
    private LocalDateTime awardCertDate;

    @ApiModelProperty(value = "信创创建人")
    private String mhCreateBy;

    @ApiModelProperty(value = "信创创建时间")
    private LocalDateTime mhCreateOn;

    @ApiModelProperty(value = "专业技术资格")
    private String majorCredentials;

    private List<MhFileInfoVO> majorCredentialsDetail;

    @ApiModelProperty(value = "信创技术资格")
    private String itaicCredentials;

    private List<MhFileInfoVO> itaicCredentialsDetail;

    @ApiModelProperty(value = "其他附件")
    private String otherFile;

    @ApiModelProperty(value = "专家推荐表文件路径")
    private String recommendFile;

    private List<MhFileInfoVO> recommendFileDetail;

    @ApiModelProperty(value = "社保记录文件路径")
    private String socialInsureFile;

    private List<MhFileInfoVO> socialInsureFileDetail;

    @ApiModelProperty(value = "职务")
    private String duties;

    @ApiModelProperty("单位意见")
    private String unitAdvice;

    @ApiModelProperty("工作简历")
    private String resume;

    @ApiModelProperty("专家字典信息")
    private Map<String, List<DictionaryVO>> dictionaries;

}
