using Exam.Share.ViewResponses.TestPaper;
using Hotline.Exams.TestPapers;
using Hotline.Repository.SqlSugar.Exam.Interface;
using Hotline.Share.Dtos.TestPapers;
using Hotline.Share.Requests.Exam;
using Hotline.Share.Requests.TestPaper;
using Hotline.Share.ViewResponses.Exam;
using Hotline.Share.ViewResponses.Questions;

namespace Hotline.Application.Exam.Interface.TestPapers
{
    public interface ITestPaperService:IQueryService<TestPaperViewResponse,TestPaperDto,TestPaperPagedRequest>,IApiService<AddTestPaperDto,UpdateTestPaperDto,ExamTestPaper>
    {
        /// <summary>
        /// 获取试卷试题数量
        /// </summary>
        /// <param name="testPaperQuestionCountRequest"></param>
        /// <returns></returns>
        public Task<List<TestPaperQuestionCountViewResponse>> GetTestPaperQuestionCount(TestPaperQuestionCountRequest testPaperQuestionCountRequest);
        
        public Task GenerateTestPaper(GenerateTestPaperRequest generateTestPaperRequest,CancellationToken cancellationToken);

        /// <summary>
        /// 根据标签获取试题
        /// </summary>
        /// <param name="testPaperQuestionRequest"></param>
        /// <returns></returns>
        public Task<List<SimpleQuestionViewResponse>> GetQuestionDtos(TestPaperQuestionRequest testPaperQuestionRequest);

        public Task<TagQuestionCountViewResponse> GetTagQuestionCount(TagQuestionCountRequest tagQuestionCountRequest);
    }
}
