package top.tqx.demo_1.service;

import top.tqx.demo_1.dto.*;
import top.tqx.demo_1.entity.Question;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface ExamService {

    ExamGenerateResponse generateQuestions(ExamGenerateRequest request) throws IOException;
    
    Map<String, Object> generateQuestionsWithFileId(ExamGenerateRequest request);

    ExamGradeResponse gradeAnswers(ExamGradeRequest request) throws IOException;

    ExamGradeResponse gradeAnswers(ExamGradeRequest request, Long userId, String paperId) throws IOException;

    ExamGradeResponse gradeAnswers(ExamGradeRequest request, Long userId, String paperId, String sessionId, String answerType) throws IOException;

    ExamRecordResponse gradeAnswersForRecord(String recordId, ExamSaveRequest request, Long userId, String answerType);

    ExamPaperGenerateResponse generatePaper(ExamPaperGenerateRequest request, Long userId, Long deptId, Integer userType);
}