package com.vetti.hotake.service;

import com.vetti.hotake.domain.HotakeAiInterviewQuestionsInfo;
import com.vetti.hotake.domain.HotakeInitialScreeningQuestionsInfo;
import com.vetti.hotake.domain.HotakeRolesInfo;
import com.vetti.hotake.domain.dto.*;
import com.vetti.hotake.domain.vo.*;

import java.util.List;

/**
 * AI共通工具信息Service接口
 *
 * @author wangxiangshun
 * @date 2025-12-14
 */
public interface IHotakeAiCommonToolsService {


    /**
     * 职位描述生成器
     **/
    public HotakeJobDescriptionGeneratorDto getJobDescriptionGenerator(Long roleId);

    /**
     * 初筛问题生成
     **/
    public List<HotakeInitialScreeningQuestionsInfo> getInitialScreeningQuestionsGenerator(HotakeInitialScreeningQuestionsVo questionsVo);

    /**
     * 简历岗位匹配度评分
     **/
    public String getResumeJobMatchingScore(HotakeResumeJobMatchingScoreVo scoreVo);

    /**
     * 简历分析优化器
     **/
    public HotakeCvOptimizeDto getResumeAnalysisOptimizer(String cvConnect);

    /**
     * 初步筛选问题淘汰评分
     **/
    public HotakeInitialQuestionEliminationScoreDto getInitialQuestionEliminationScore(HotakeInitialQuestionEliminationScoreVo questionEliminationScoreVo);

    /**
     * 处理分析附件结果
     * @param connect
     * @return
     */
    public String handleAnalyzedAttachment(String connect);


    /**
     * 处理附件分析结果合并信息
     * @param basicInformation 基础信息
     * @param
     * @return
     */
    public String handleAttachmentResultMerging(String basicInformation,String attachmentContent);


    /**
     * 生成最终的Markdown格式简历
     * @param markdown
     * @return
     */
    public String handleGenerateMarkdown(String markdown);

    /**
     * 网站内容抓取
     * @param webUrl
     * @return
     */
    public String handleWebContentScraping(String webUrl);

    /**
     * 网站AI信息提取（使用提示词）
     * @param webInfoExtractVo 网站提取对象
     * @return
     */
    public String handleWebInfoExtract(HotakeWebInfoExtractVo webInfoExtractVo);

    /**
     * 网站信息增强处理
     * @param webContent 网站内容
     * @return
     */
    public String handleWebInfoEnhancedProcessing(String webContent);


    /**
     * 个人简介生成器
     * @param personalProfileGeneratorVo 个人信息
     * @return
     */
    public HotakePersonalProfileGeneratorDto getPersonalProfileGenerator(HotakePersonalProfileGeneratorVo personalProfileGeneratorVo);


    /**
     * 工作经验生成器
     * @param workExperienceGeneratorVo 工作信息
     * @return
     */
    public HotakeWorkExperienceGeneratorDto getWorkExperienceGenerator(HotakeWorkExperienceGeneratorVo workExperienceGeneratorVo);


    /**
     * 招聘链接信息分析补全
     * @param roleLinkAnalysisVo 岗位链接对象
     * @return
     */
    public HotakeRolesInfoDto getRoleLinkAnalysis(HotakeRoleLinkAnalysisVo roleLinkAnalysisVo);


    /**
     * 招聘链接信息分析补全（按照步骤生成）
     * @param rolesInfoDto 岗位信息
     * @return
     */
    public HotakeRolesInfoDto getRoleInfoAnalysisSetUp(HotakeRolesInfoDto rolesInfoDto);


    /**
     * AI面试问题生成
     * @param rolesInfo 岗位信息
     * @return
     */
    public HotakeAiInterviewQuestionsInfo getAiInterviewQuestions(HotakeRolesInfo rolesInfo);


    /**
     * 候选人AI面试分析
     * @param analysisVo 候选人AI面试分析信息
     * @return
     */
    public HotakeCandidateAiInterviewAnalysisDto handleCandidateAiInterviewAnalysis(HotakeCandidateAiInterviewAnalysisVo analysisVo);


    /**
     * 招聘者AI简历评分和排名系统
     * @param roleApplyVo 岗位申请数据对象
     * @return
     */
    public HotakeAiCvScoringRankingDto handleAiCvScoringRanking(HotakeAiCvScoringRankingRoleApplyVo roleApplyVo);


    /**
     * 招聘者查看候选人匹配度
     * @param compatibilityVo 招聘者查看候选人匹配度 输入信息
     * @return
     */
    public HotakeCandidateCompatibilityDto handleCandidateCompatibility(HotakeCandidateCompatibilityVo compatibilityVo);

    /**
     * 候选人面试综合评估
     * @param evaluationVo 候选人面试综合评估 输入信息
     * @return
     */
    public HotakeCandidateInterviewEvaluationDto getCandidateInterviewEvaluation(HotakeCandidateInterviewEvaluationVo evaluationVo);

}
