package com.fs.course.service;

import com.fs.common.core.domain.R;
import com.fs.course.domain.FsCourseQuestionBank;
import com.fs.course.dto.FsCourseQuestionBankImportDTO;
import com.fs.course.param.FsCourseQuestionAnswerUParam;

import javax.validation.constraints.Size;
import java.util.List;

/**
 * 题库Service接口
 *
 * @author fs
 * @date 2024-09-07
 */
public interface IFsCourseQuestionBankService
{
    /**
     * 查询题库
     *
     * @param id 题库主键
     * @return 题库
     */
    public FsCourseQuestionBank selectFsCourseQuestionBankById(Long id);

    /**
     * 查询题库列表
     *
     * @param fsCourseQuestionBank 题库
     * @return 题库集合
     */
    public List<FsCourseQuestionBank> selectFsCourseQuestionBankList(FsCourseQuestionBank fsCourseQuestionBank);

    /**
     * 新增题库
     *
     * @param fsCourseQuestionBank 题库
     * @return 结果
     */
    public int insertFsCourseQuestionBank(FsCourseQuestionBank fsCourseQuestionBank);

    /**
     * 修改题库
     *
     * @param fsCourseQuestionBank 题库
     * @return 结果
     */
    public int updateFsCourseQuestionBank(FsCourseQuestionBank fsCourseQuestionBank);

    /**
     * 批量删除题库
     *
     * @param ids 需要删除的题库主键集合
     * @return 结果
     */
    public int deleteFsCourseQuestionBankByIds(Long[] ids);

    /**
     * 删除题库信息
     *
     * @param id 题库主键
     * @return 结果
     */
    public int deleteFsCourseQuestionBankById(Long id);

    /**
     * 企微客户答题
     */
    R courseAnswer(FsCourseQuestionAnswerUParam param, Boolean isH5User);


    /**
     * 会员答题
     */
    R courseAnswerByfsUser(FsCourseQuestionAnswerUParam param);

    /**
     * 题目导入
     *
     * @param list     数据
     * @param nickName 昵称
     * @return String
     */
    String importData(List<FsCourseQuestionBankImportDTO> list, @Size String nickName);

    /**
     * 根据ID查询题目
     * @param ids   ids
     * @return  list
     */
    List<FsCourseQuestionBank> selectFsCourseQuestionBankByIds(List<Long> ids);
}
