package com.seer.teach.teacher.service;

import com.seer.teach.common.PageListBean;
import com.seer.teach.common.enums.AiScenarioCodeEnum;
import com.seer.teach.teacher.common.req.WrongQuestionBookReq;
import com.seer.teach.teacher.common.req.WrongQuestionPageListReq;
import com.seer.teach.teacher.common.resp.SimilarQuestionResp;
import com.seer.teach.teacher.common.resp.WrongQuestionPageListResp;
import com.seer.teach.teacher.common.resp.WrongQuestionResp;
import com.seer.teach.teacher.module.entity.IdEntity;

import java.util.List;

/**
 * 错题本服务
 *
 * @author: 嘉多宝宝
 * @date: 2025/12/09 10:05
 */
public interface WrongQuestionService {

    /**
     * 获取错题本
     *
     * @param params 请求参数
     * @return 错题本
     */
    WrongQuestionResp getWrongQuestionCount(WrongQuestionBookReq params);

    /**
     * 获取错题列表
     *
     * @param params 请求参数
     * @return 错题列表
     */
    PageListBean<WrongQuestionPageListResp> getWrongQuestionList(WrongQuestionPageListReq params);

    /**
     * 删除错题
     *
     * @param params 题目Id
     * @return 删除结果
     */
    void deleteWrongQuestion(IdEntity params);

    /**
     * 举一反三
     *
     * @param id           题目Id
     * @param scenarioCode 场景code
     * @param count        题目数量
     * @return 举一反三
     */
    List<String> generateSimilarQuestions(Integer id, AiScenarioCodeEnum scenarioCode, Integer count);

    /**
     * 举一反三获取相似题目
     * @param id 题目Id
     * @return 相似题目
     */
    List<SimilarQuestionResp> getSimilarQuestionsByQuestionId(Integer id);
}