package com.fs.doctor.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.Map;

/**
 * 讲者定级申请对象 doctor_level_apply
 *
 * @author fs
 * @date 2025-12-30
 */
@Data
public class DoctorLevelApply extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 讲者业务ID
     */
    private String doctorId;
    @Excel(name = "医生名称")
    private String doctorName;

    /**
     * 公司ID
     */
    private Long companyId;

    /**
     * 公司ID
     */
    @Excel(name = "公司名称")
    private String companyName;

    /**
     * 学术头衔（住院医师、主治医师、副主任医师、主任医师等）
     */
    @Excel(name = "学术头衔", readConverterExp = "住=院医师、主治医师、副主任医师、主任医师等")
    private String academicTitle;

    /**
     * 学术任职（多选，逗号分隔）
     */
    @Excel(name = "学术任职", readConverterExp = "多=选，逗号分隔")
    private String academicPosition;

    /**
     * 国际性期刊论文/著作数
     */
    @Excel(name = "国际性期刊论文/著作数")
    private Long internationalPapers;

    /**
     * 全国性期刊论文/著作数
     */
    @Excel(name = "全国性期刊论文/著作数")
    private Long nationalPapers;

    /**
     * 学术研究（省级人才引入/培养计划获得者等）
     */
    @Excel(name = "学术研究", readConverterExp = "省=级人才引入/培养计划获得者等")
    private String academicResearch;

    /**
     * 临床工作经验年数
     */
    @Excel(name = "临床工作经验年数")
    private Long clinicalExperienceYears;

    /**
     * 学位（博士、硕士、学士、其他）
     */
    @Excel(name = "学位", readConverterExp = "博=士、硕士、学士、其他")
    private String degree;

    /**
     * 申请级别（一级、二级、三级等）
     */
    @Excel(name = "申请级别", readConverterExp = "一=级、二级、三级等")
    private String applyLevel;

    /**
     * 审核状态（0-待审核 1-审核通过 2-审核驳回）
     */
    @Excel(name = "审核状态", readConverterExp = "0=-待审核,1=-审核通过,2=-审核驳回")
    private Long status;

    /**
     * 逻辑删除标记（0-未删除 1-已删除）
     */
    @Excel(name = "逻辑删除标记", readConverterExp = "0=-未删除,1=-已删除")
    private Long deleted;
    /**
     * 审核实例id
     */
    private Long auditInstanceId;

    /**
     * 动态字段生成表的行数据id
     */
    private Long formId;

    /**
     * 问卷数据
     */
    @TableField(exist = false)
    private Map<String, Object> surveyData;
}
