import type { BaseModel } from '#/api/baseModel';

export namespace EmployeeInfoApi {
  export interface Employee extends BaseModel {
    /**
     * 板块
     */
    plate?: string;
    /**
     * 一级部门
     */
    firstLevelDepartment?: string;
    /**
     * 二级部门
     */
    secondLevelDepartment?: string;
    /**
     * 三级部门
     */
    thirdLevelDepartment?: string;
    /**
     * 部门ID
     */
    deptId?: number;

    /**
     * 工号
     */
    employeeId?: number;

    /**
     * 职级
     */
    jobLevel?: number;

    /**
     * 岗位类型
     */
    positionType?: string;
    positionTypeName?: string;
    /**
     * 序列
     */
    sequence?: string;
    sequenceName?: string;
    /**
     * 主岗位
     */
    position?: string;
    /**
     * 姓名
     */
    name?: string;
    /**
     * 性别
     */
    gender?: string;
    genderName?: string;
    /**
     * 身份证号码
     */
    idCardNumber?: number;

    /**
     * 照片
     */
    photo?: string;
    /**
     * 图片ID
     */
    ossId?: number;
    /**
     * 出生日期
     */
    birthDate?: string;
    /**
     * 年龄
     */
    age?: number;

    /**
     * 年龄段
     */
    ageGroup?: string;
    ageGroupName?: string;
    /**
     * 兼职板块
     */
    partTimePlate?: string;
    /**
     * 兼职一级部门
     */
    partTimeFirstDept?: string;
    /**
     * 兼职二级部门
     */
    partTimeSecondDept?: string;
    /**
     * 兼职三级部门
     */
    partTimeThirdDept?: string;
    /**
     * 兼职岗位
     */
    partTimePosition?: string;
    /**
     * 籍贯
     */
    nativePlace?: string;
    /**
     * 民族
     */
    ethnicity?: string;
    /**
     * 婚姻状况
     */
    maritalStatus?: string;
    maritalStatusName?: string;
    /**
     * 政治面貌
     */
    politicalStatus?: string;
    politicalStatusName?: string;
    /**
     * 手机号码
     */
    phoneNumber?: string;
    /**
     * 紧急联系人
     */
    emergencyContact?: string;
    /**
     * 紧急联系人电话
     */
    emergencyContactPhone?: string;
    /**
     * 家庭地址
     */
    homeAddress?: string;
    /**
     * 户口所在地
     */
    householdRegistrationAddress?: string;
    /**
     * 参加工作时间
     */
    workStartDate?: string;
    /**
     * 入职时间
     */
    entryDate?: string;
    /**
     * 工龄
     */
    yearsOfService?: string;
    /**
     * 工龄段
     */
    yearsOfServiceSegment?: string;
    yearsOfServiceSegmentName?: string;
    /**
     * 全日制学历
     */
    fulltimeEducation?: string;
    /**
     * 全日制毕业院校
     */
    fulltimeSchool?: string;
    /**
     * 全日制专业
     */
    fulltimeMajor?: string;
    /**
     * 全日制毕业日期
     */
    fulltimeGraduationDate?: string;
    /**
     * 全日制学位
     */
    fulltimeDegree?: string;
    /**
     * 非全日制学历
     */
    nonFulltimeEducation?: string;
    /**
     * 非全日制毕业院校
     */
    nonFulltimeSchool?: string;
    /**
     * 非全日制专业
     */
    nonFulltimeMajor?: string;
    /**
     * 非全日制毕业日期
     */
    nonFulltimeGraduationDate?: string;
    /**
     * 非全日制学位
     */
    nonFulltimeDegree?: string;
    /**
     * 学历分类
     */
    educationCategory?: string;
    educationCategoryName?: string;
    /**
     * 员工类型
     */
    employeeType?: string;
    employeeTypeName?: string;
    /**
     * 职称情况
     */
    professionalTitle?: string;
    /**
     * 证书情况
     */
    certificateStatus?: string;
    /**
     * 外部个人履历
     */
    externalResume?: string;
    /**
     * 内部个人履历
     */
    internalResume?: string;
    /**
     * 用工形式
     */
    employmentForm?: string;
    employmentFormName?: string;
    /**
     * 合同形式
     */
    contractForm?: string;
    contractFormName?: string;
    /**
     * 劳动合同期限
     */
    contractTerm?: string;
    /**
     * 劳动合同开始时间
     */
    contractStartDate?: string;
    /**
     * 劳动合同截止时间
     */
    contractEndDate?: string;
    /**
     * 合同到期提醒
     */
    contractExpirationReminder?: string;
    /**
     * 劳动合同签订情况
     */
    contractSigningStatus?: string;
    /**
     * 合同主体
     */
    contractEntity?: string;
    /**
     * 社保主体
     */
    socialSecurityEntity?: string;
    /**
     * 是否缴纳社保
     */
    hasSocialSecurityPaid?: number;
    hasSocialSecurityPaidName?: number;

    /**
     * 公积金主体
     */
    providentFundEntity?: number;

    /**
     * 是否缴纳公积金
     */
    hasProvidentFundPaid?: number;
    hasProvidentFundPaidName?: number;

    /**
     * 试用期（月数）
     */
    probationPeriod?: number;

    /**
     * 转正时间
     */
    regularizationDate?: string;
    /**
     * 奖励情况
     */
    rewardStatus?: string;
    /**
     * 处罚情况
     */
    punishmentStatus?: string;
    /**
     * 备注
     */
    remarks?: string;
    /**
     * 办公电话
     */
    officePhone?: string;
    /**
     * 短线
     */
    shortLine?: string;
    /**
     * 银行卡号
     */
    bankCardNumber?: string;
    /**
     * 开户行
     */
    bankName?: string;
    /**
     * 公司内是否有亲属关系
     */
    hasRelativeInCompany?: string;
    hasRelativeInCompanyName?: string;
    /**
     * 亲属姓名
     */
    relativeName?: string;
    /**
     * 介绍人
     */
    introducer?: string;
    /**
     * 工资发放地
     */
    salaryLocation?: string;
    /**
     * 绩效比例
     */
    performanceRatio?: string;

    /**
     * 离职类型
     */
    resignationType?: string;
    resignationTypeName?: string;
    /**
     * 离职时间
     */
    resignationDate?: string;
    /**
     * 离职原因
     */
    resignationReason?: string;
    /**
     * 最后结薪日
     */
    finalPayDate?: string;
    /**
     * 离职申请状态
     */
    resignationApplyStatus?: number;
    resignationApplyStatusName?: number;

    /**
     * 入职审批状态
     */
    entryApplyStatus?: number;
    entryApplyStatusName?: number;

    /**
     * 调配申请状态
     */
    transferApplyStatus?: number;
    transferApplyStatusName?: number;
  }

  export interface EmployeeApplyBo {
    /**
     * 序号
     */
    id?: number;
    /**
     * 入职时间
     */
    entryDate?: Date;
    /**
     * 备注
     */
    remark?: string;
  }

  export interface EmployeeTransferApplyBo extends EmployeeApplyBo {
    /**
     * 板块
     */
    plate: string;
    /**
     * 一级部门
     */
    firstLevelDepartment?: string;
    /**
     * 二级部门
     */
    secondLevelDepartment?: string;
    /**
     * 三级部门
     */
    thirdLevelDepartment?: string;
    /**
     * 部门ID
     */
    deptId?: number;
  }

  export interface EmployeeResignApplyBo extends EmployeeApplyBo {
    /**
     * 离职类型
     */
    resignationType: string;
    /**
     * 离职时间
     */
    resignDate?: Date;
    /**
     * 离职原因
     */
    resignReason?: string;
    /**
     * 最后结薪日
     */
    finalPayDate?: Date;
  }
}

// export interface EmployeeResign extends EmployeeInfoApi.Employee {

// }
