package org.qinan.safetyeval.client.co;

import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;

/**
 * 人员信息CO（Client Object）
 *
 * @author safety-eval
 */
@Data
public class OrgPersonnelCO {

    @ApiModelProperty(value = "主键ID")
    private Long id;

    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    @ApiModelProperty(value = "岗位ID")
    private Long postId;

    @ApiModelProperty(value = "用户姓名")
    private String userName;

    @ApiModelProperty(value = "账号")
    private String account;

    @ApiModelProperty(value = "性别编码(1男2女)")
    private Integer genderCode;

    @ApiModelProperty(value = "性别名称")
    private String genderName;

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

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

    @ApiModelProperty(value = "现住地址")
    private String currentAddress;

    @ApiModelProperty(value = "办公地址")
    private String officeAddress;

    @ApiModelProperty(value = "学历编码")
    private String educationCode;

    @ApiModelProperty(value = "学历名称")
    private String educationName;

    @ApiModelProperty(value = "毕业院校")
    private String graduateSchool;

    @ApiModelProperty(value = "专业")
    private String major;

    @ApiModelProperty(value = "就职状态编码(1在职2离职)")
    private Integer employmentStatusCode;

    @ApiModelProperty(value = "从业状态名称")
    private String employmentStatusName;

    @ApiModelProperty(value = "人员类型编码(1基础人员2专职评价师)")
    private String personTypeCode;

    @ApiModelProperty(value = "人员类型名称")
    private String personTypeName;

    @ApiModelProperty(value = "资质范围")
    private String qualScope;

    @ApiModelProperty(value = "职业资格等级编码")
    private String professionalLevelCode;

    @ApiModelProperty(value = "职业资格等级名称")
    private String professionalLevelName;

    @ApiModelProperty(value = "评价师证书编号")
    private String evaluatorCertNo;

    @ApiModelProperty(value = "学历类型编码(全日制/在职教育)")
    private String educationTypeCode;

    @ApiModelProperty(value = "教育类型名称")
    private String educationTypeName;

    @ApiModelProperty(value = "学历层次编码(专科/本科/硕士/博士)")
    private String educationLevelCode;

    @ApiModelProperty(value = "教育水平名称")
    private String educationLevelName;

    @ApiModelProperty(value = "职称名称")
    private String titleName;

    @ApiModelProperty(value = "是否注册安全工程师(1是2否)")
    private Integer registerEngineerFlag;

    @ApiModelProperty(value = "发表著作")
    private String publications;

    @ApiModelProperty(value = "能力声明")
    private String abilityDeclaration;

    @ApiModelProperty(value = "工作经历")
    private String workExperience;

    @ApiModelProperty(value = "证明材料附件地址")
    private String proofMaterialUrl;

    @ApiModelProperty(value = "部门名称（列表展示，非持久化）")
    private String deptName;

    @ApiModelProperty(value = "岗位名称（列表展示，非持久化）")
    private String postName;

    @ApiModelProperty(value = "证书名称汇总（列表展示，非持久化）")
    private String certNames;

    @ApiModelProperty(value = "信息变更次数（列表展示，非持久化）")
    private Integer changeCount;

    @ApiModelProperty(value = "离职申请ID（列表展示，非持久化）")
    private Long resignApplyId;

    @ApiModelProperty(value = "离职申请审核状态（列表展示，非持久化）")
    private Integer resignAuditStatus;

    @ApiModelProperty(value = "租户ID")
    private Long tenantId;
}
