package com.cy.guoyan.admin.module.guoyan.controller.admin.expertinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 专家信息新增/修改 Request VO")
@Data
public class ExpertInfoSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29963")
    private Long id;

    @Schema(description = "专家姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "专家姓名不能为空")
    private String expertName;

    @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "性别不能为空")
    private String gender;

    @Schema(description = "政治面貌", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "政治面貌不能为空")
    private String politicalStatus;

    @Schema(description = "电话", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "电话不能为空")
    private String phone;

    @Schema(description = "职业状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "职业状态不能为空")
    private String jobStatus;

    @Schema(description = "现任/原任职务", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "现任/原任职务不能为空")
    private String currentOrFormerTitle;

    @Schema(description = "身份证号/护照号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "身份证号/护照号不能为空")
    private String idOrPassport;

    @Schema(description = "银行卡号", requiredMode = Schema.RequiredMode.REQUIRED, example = "19485")
    @NotEmpty(message = "银行卡号不能为空")
    private String bankAccount;

    @Schema(description = "开户行", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotEmpty(message = "开户行不能为空")
    private String bankName;

    @Schema(description = "专业技术职称/职业资格")
    private String professionalTitle;

    @Schema(description = "主要成果奖励、荣誉称号、出版著作、授权专利等", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "主要成果奖励、荣誉称号、出版著作、授权专利等不能为空")
    private String majorAchievements;

    @Schema(description = "国内外主要学术组织、社会团体及其他智库兼职情况", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "国内外主要学术组织、社会团体及其他智库兼职情况不能为空")
    private String academicSocietyRoles;

    @Schema(description = "专业、熟悉领域", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "专业、熟悉领域不能为空")
    private String specialties;

    @Schema(description = "学术、学历背景", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "学术、学历背景不能为空")
    private String academicBackground;

    @Schema(description = "专业经验-年", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "专业经验-年不能为空")
    private String yearsOfExperience;

    @Schema(description = "专业影响力", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "专业影响力不能为空")
    private String professionalInfluence;

    @Schema(description = "主要学习和工作经历", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "主要学习和工作经历不能为空")
    private String workAndStudyExperience;

    @Schema(description = "主要成绩")
    private String mainContributions;

    @Schema(description = "专家头衔", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "专家头衔不能为空")
    private String expertTitle;

    @Schema(description = "入库日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "入库日期不能为空")
    private String entryDate;

    @Schema(description = "民族")
    private String ethnicity;

    @Schema(description = "籍贯")
    private String birthplace;

    @Schema(description = "现工作单位及职务")
    private String currentWorkplace;

    @Schema(description = "通讯地址")
    private String address;

    @Schema(description = "电子邮箱")
    private String email;

    @Schema(description = "毕业院校及专业-在职")
    private String graduatedSchool;

    @Schema(description = "备注")
    private String remarks;

}