package com.vetti.hotake.domain;

import java.math.BigDecimal;
import java.util.List;

import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModelProperty;
import com.vetti.common.annotation.Excel;
import com.vetti.common.core.domain.BaseEntity;

/**
 * 岗位信息对象 hotake_roles_info
 *
 * @author wangxiangshun
 * @date 2025-12-11
 */
@Data
@Accessors(chain = true)
public class HotakeRolesInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty("UUID主键")
    private String uuid;

    /** 招聘人ID */
    @ApiModelProperty("招聘人ID")
    @Excel(name = "招聘人ID")
    private Long recruiterId;

    /** 岗位名称 */
    @ApiModelProperty("岗位名称")
    @Excel(name = "岗位名称")
    private String roleName;

    @ApiModelProperty("招聘公司名称")
    private String companyName;

    @ApiModelProperty("岗位类型")
    private String roleType;

    /** 工作地点类型 */
    @ApiModelProperty("工作地点类型")
    @Excel(name = "工作地点类型")
    private String locationType;

    /** 工作详细地点 */
    @ApiModelProperty("工作详细地点")
    @Excel(name = "工作详细地点")
    private String locations;

    /** 申请人数 */
    @ApiModelProperty("申请人数")
    @Excel(name = "申请人数")
    private String applied;

    /** 工作级别 */
    @ApiModelProperty("工作级别")
    @Excel(name = "工作级别")
    private String jobLevel;

    /** 工作类型 */
    @ApiModelProperty("工作类型")
    @Excel(name = "工作类型")
    private String jobType;

    /** 工作经验 */
    @ApiModelProperty("工作经验")
    @Excel(name = "工作经验")
    private String jobExperience;

    /** 起始薪资 */
    @ApiModelProperty("起始薪资")
    @Excel(name = "起始薪资")
    private BigDecimal salaryStart;

    /** 最高薪资 */
    @ApiModelProperty("最高薪资")
    @Excel(name = "最高薪资")
    private BigDecimal salaryEnd;

    /** 所需技能 */
    @ApiModelProperty("所需技能")
    @Excel(name = "所需技能")
    private String requiredSkillsJson;

    /** 加分技能 */
    @ApiModelProperty("加分技能")
    @Excel(name = "加分技能")
    private String niceToHaveSkillsJson;

    /** 教育要求 */
    @ApiModelProperty("教育要求")
    @Excel(name = "教育要求")
    private String educationRequirementsJson;

    /** 是否接受以同等工作经验作为学位的替代 */
    @ApiModelProperty("是否接受以同等工作经验作为学位的替代")
    @Excel(name = "是否接受以同等工作经验作为学位的替代")
    private String acceptEquivalentWorkFlag;

    /** 证书与执照 */
    @ApiModelProperty("证书与执照")
    @Excel(name = "证书与执照")
    private String certificationsLicensesJson;

    /** 描述语气 */
    @ApiModelProperty("描述语气")
    @Excel(name = "描述语气")
    private String descriptionTone;

    /** 关于职位 */
    @ApiModelProperty("关于职位")
    @Excel(name = "关于职位")
    private String aboutRole;

    /** 职责 */
    @ApiModelProperty("职责")
    @Excel(name = "职责")
    private String responsibilities;

    /** 角色福利 */
    @ApiModelProperty("角色福利")
    @Excel(name = "角色福利")
    private String roleBenefitsJson;

    /** 发布渠道 */
    @ApiModelProperty("发布渠道")
    @Excel(name = "发布渠道")
    private String publishingChannelsJson;

    /** 发布日历-日期 */
    @ApiModelProperty("发布日历-日期")
    @Excel(name = "发布日历-日期")
    private String publishingScheduleDate;

    /** 发布渠道-具体时间 */
    @ApiModelProperty("发布渠道-具体时间")
    @Excel(name = "发布渠道-具体时间")
    private String publishingScheduleTime;

    /** 申请截止日期 */
    @ApiModelProperty("申请截止日期")
    @Excel(name = "申请截止日期")
    private String applicationDeadline;

    /** 发布日期 */
    @ApiModelProperty("发布日期")
    @Excel(name = "发布日期")
    private String posted;

    @ApiModelProperty("语言")
    private String languages;

    @ApiModelProperty("AI筛选音频标识")
    private String aiScreeningVideoFlag;

    @ApiModelProperty("语音ID")
    private String videoId;

    @ApiModelProperty("语速")
    private String speechSpeed;

    @ApiModelProperty("数据类型（release:发布Job，draft:草稿,template:模版）")
    private String dataType;

    /** 当前操作步骤 */
    @ApiModelProperty("当前操作步骤()")
    @Excel(name = "当前操作步骤")
    private String operStep;

    @ApiModelProperty("当前岗位状态(pause:暂停,archived:关闭/归档,open:发布,editing:编辑中)")
    private String status;

    @ApiModelProperty("岗位申请数据集合")
    private List<HotakeRolesApplyInfo> rolesApplyInfoList;


}
