package com.vetti.hotake.service;

import java.util.List;
import com.vetti.hotake.domain.HotakeCvInfo;
import com.vetti.hotake.domain.HotakeProblemBaseInfo;
import com.vetti.hotake.domain.dto.HotakeCvInfoDto;

/**
 * 简历信息Service接口
 * 
 * @author wangxiangshun
 * @date 2025-11-02
 */
public interface IHotakeCvInfoService 
{
    /**
     * 查询简历信息
     * 
     * @param id 简历信息主键
     * @return 简历信息
     */
    public HotakeCvInfo selectHotakeCvInfoById(Long id);

    /**
     * 查询简历信息列表
     * 
     * @param hotakeCvInfo 简历信息
     * @return 简历信息集合
     */
    public List<HotakeCvInfo> selectHotakeCvInfoList(HotakeCvInfo hotakeCvInfo);

    /**
     * 新增简历信息
     * 
     * @param hotakeCvInfo 简历信息
     * @return 结果
     */
    public HotakeCvInfo insertHotakeCvInfo(HotakeCvInfo hotakeCvInfo);

    /**
     * 处理简历信息
     *
     * @param cvInfoDto 简历信息
     * @return 结果
     */
    public HotakeProblemBaseInfo handleHotakeCvInfo(HotakeCvInfoDto cvInfoDto,Long cvId);


    /**
     * 修改简历信息
     * 
     * @param hotakeCvInfo 简历信息
     * @return 结果
     */
    public HotakeCvInfo updateHotakeCvInfo(HotakeCvInfo hotakeCvInfo);

    /**
     * 批量删除简历信息
     * 
     * @param ids 需要删除的简历信息主键集合
     * @return 结果
     */
    public int deleteHotakeCvInfoByIds(Long[] ids);

    /**
     * 删除简历信息信息
     * 
     * @param id 简历信息主键
     * @return 结果
     */
    public int deleteHotakeCvInfoById(Long id);

    /**
     * 批量新增简历信息
     *
     * @param hotakeCvInfoList 简历信息列表
     * @return 结果
     */
    public int batchInsertHotakeCvInfo(List<HotakeCvInfo> hotakeCvInfoList);

    /**
     * 简历解析以及生成问题和评分
     *
     * @param hotakeCvInfo 简历信息
     * @return 结果
     */
    public HotakeCvInfo handleCvAnalysis(HotakeCvInfo hotakeCvInfo);


    /**
     * 根据其他的附件信息生成个人简历
     *
     * @return 结果
     */
    public HotakeCvInfo getGenerateResume();



}
