package com.ningdatech.pmapi.expert.model;

import com.ningdatech.pmapi.meta.model.ExpertRegionInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author liuxinxin
 * @date 2022/7/25 下午1:44
 * 专家信息中的基本信息一栏
 */
@Data
@ApiModel(value = "ExpertBasicInfo", description = "专家基本信息")
public class ExpertBasicInfo {

    /**
     * 是否浙政钉用户Y/N
     */
    @NotNull
    @ApiModelProperty(value = "是否浙政钉用户Y/N")
    private Boolean isDingUser;

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

    /**
     * 专家姓名
     */
    @NotBlank
    @ApiModelProperty(value = "专家姓名")
    private String name;

    /**
     * 免冠照图片地址
     */
    @NotBlank
    @ApiModelProperty(value = "免冠照图片文件")
    private FileBasicInfo avatarFile;

    /**
     * 性别 0，1：女，男
     */
    @NotBlank
    @ApiModelProperty(value = "性别 0，1：女，男")
    private String gender;

    /**
     * 政治面貌(字典code)
     */
    @NotNull
    @ApiModelProperty(value = "政治面貌(字典code)")
    private List<DictionaryFieldInfo> political;

    /**
     * 身份证号码
     */
    @NotBlank
    @ApiModelProperty(value = "身份证号码")
    private String idCard;

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

    /**
     * 出生日期
     */
    @NotNull
    @ApiModelProperty(value = "出生日期")
    private LocalDateTime birth;

    /**
     * 开户银行
     */
    @NotBlank
    @ApiModelProperty(value = "开户银行")
    private String bank;

    /**
     * 银行卡号
     */
    @NotBlank
    @ApiModelProperty(value = "银行卡号")
    private String bankNo;

    /**
     * 电子邮箱
     */
    @NotBlank
    @ApiModelProperty(value = "电子邮箱")
    @Email
    private String email;

    /**
     * 专家来源(标签code)
     */
    @NotNull
    @ApiModelProperty(value = "专家来源(标签code)")
    private List<TagFieldInfo> expertSource;

    /**
     * 专家层级
     */
    @NotNull
    @ApiModelProperty(value = "专家层级")
    private ExpertRegionInfo expertRegionInfo;

    /**
     * 履职意向
     */
    @NotEmpty
    @ApiModelProperty(value = "履职意向")
    private List<ExpertRegionInfo> expertIntentionWorkRegions;

    /**
     * 专家类型(内外围)
     */
    @ApiModelProperty(value = "专家类型(内外围)")
    private List<DictionaryFieldInfo> expertType;

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

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

}
