package com.seer.teach.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.seer.teach.admin.request.BankQuestionsBatchSaveReq;
import com.seer.teach.admin.request.BankQuestionsQueryReq;
import com.seer.teach.admin.request.BankQuestionsReq;
import com.seer.teach.admin.request.CheckAndScoreReq;
import com.seer.teach.admin.response.BankQuestionsResp;

/**
 * <p>
 * 题库管理服务接口
 * </p>
 *
 * @author Lingma
 * @since 2025-10-27
 */
public interface AdminBankQuestionsService {

    /**
     * 分页查询题库列表
     *
     * @param req 查询条件
     * @return 题库分页数据
     */
    IPage<BankQuestionsResp> pageBankQuestions(BankQuestionsQueryReq req);

    /**
     * 根据ID获取题库详情
     *
     * @param id 题库ID
     * @return 题库实体
     */
    BankQuestionsResp getBankQuestionById(Integer id);

    /**
     * 添加题库
     *
     * @param req 题库信息
     * @return 是否添加成功
     */
    boolean addBankQuestion(BankQuestionsReq req);

    /**
     * 更新题库信息
     *
     * @param id  题库ID
     * @param req 题库信息
     * @return 是否更新成功
     */
    boolean updateBankQuestion(Integer id, BankQuestionsReq req);

    /**
     * 更新题库检查状态和评分
     *
     * @param id  题库ID
     * @param req 检查状态和评分信息
     * @return 是否更新成功
     */
    boolean updateBankQuestionCheckAndScore(Integer id, CheckAndScoreReq req);

    /**
     * 删除题库
     *
     * @param id 题库ID
     * @return 是否删除成功
     */
    boolean deleteBankQuestion(Integer id);

    /**
     * 批量保存生成的题目
     *
     * @param req 批量保存请求参数
     * @return 是否保存成功
     */
    boolean batchSaveGeneratedBankQuestions(BankQuestionsBatchSaveReq req);
    
}