package com.vetti.hotake.mapper;

import java.util.List;
import com.vetti.hotake.domain.HotakeRolesApplyInfo;
import org.apache.ibatis.annotations.Param;

/**
 * 候选人岗位申请信息Mapper接口
 * 
 * @author wangxiangshun
 * @date 2025-12-17
 */
public interface HotakeRolesApplyInfoMapper 
{
    /**
     * 查询候选人岗位申请信息
     * 
     * @param id 候选人岗位申请信息主键
     * @return 候选人岗位申请信息
     */
    public HotakeRolesApplyInfo selectHotakeRolesApplyInfoById(Long id);

    /**
     * 查询候选人岗位申请信息列表
     * 
     * @param hotakeRolesApplyInfo 候选人岗位申请信息
     * @return 候选人岗位申请信息集合
     */
    public List<HotakeRolesApplyInfo> selectHotakeRolesApplyInfoList(HotakeRolesApplyInfo hotakeRolesApplyInfo);

    /**
     * 查询候选人岗位申请信息列表
     *
     * @param hotakeRolesApplyInfo 候选人岗位申请信息
     * @return 候选人岗位申请信息集合
     */
    public List<HotakeRolesApplyInfo> selectHotakeRolesApplyInfoRankingList(HotakeRolesApplyInfo hotakeRolesApplyInfo);

    /**
     * 查询候选人岗位申请信息列表
     *
     * @param hotakeRolesApplyInfo 候选人岗位申请信息
     * @return 候选人岗位申请信息集合
     */
    public List<HotakeRolesApplyInfo> selectHotakeRolesApplyInfoCompatibilityScoreList(HotakeRolesApplyInfo hotakeRolesApplyInfo);

    /**
     * 查询候选人岗位申请信息列表
     *
     * @param hotakeRolesApplyInfo 候选人岗位申请信息
     * @return 候选人岗位申请信息集合
     */
    public List<HotakeRolesApplyInfo> selectHotakeRolesApplyInfoCompatibilityScoreOneList(HotakeRolesApplyInfo hotakeRolesApplyInfo);

    /**
     * 新增候选人岗位申请信息
     * 
     * @param hotakeRolesApplyInfo 候选人岗位申请信息
     * @return 结果
     */
    public int insertHotakeRolesApplyInfo(HotakeRolesApplyInfo hotakeRolesApplyInfo);

    /**
     * 修改候选人岗位申请信息
     * 
     * @param hotakeRolesApplyInfo 候选人岗位申请信息
     * @return 结果
     */
    public int updateHotakeRolesApplyInfo(HotakeRolesApplyInfo hotakeRolesApplyInfo);

    /**
     * 删除候选人岗位申请信息
     * 
     * @param id 候选人岗位申请信息主键
     * @return 结果
     */
    public int deleteHotakeRolesApplyInfoById(Long id);

    /**
     * 批量删除候选人岗位申请信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHotakeRolesApplyInfoByIds(Long[] ids);
    /**
     * 批量新增候选人岗位申请信息
     *
     * @param hotakeRolesApplyInfoList 候选人岗位申请信息列表
     * @return 结果
     */
    public int batchInsertHotakeRolesApplyInfo(List<HotakeRolesApplyInfo> hotakeRolesApplyInfoList);

    /**
     * 根据候选人ID和岗位ID查询申请信息
     *
     * @param candidateId 候选人ID
     * @param roleId 岗位ID
     * @return 候选人岗位申请信息
     */
    public HotakeRolesApplyInfo selectByCandidateIdAndRoleId(@Param("candidateId") Long candidateId, @Param("roleId") Long roleId);

}
