package top.tqx.demo_1.service;

import top.tqx.demo_1.dto.*;

import java.util.List;
import java.util.Map;

public interface ExamPaperService {

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

    ExamPaperPreviewResponse previewPaperWithDetails(ExamPaperGenerateRequest request, Long userId, Long deptId, Integer userType);

    ExamPaperResponse savePaper(ExamPaperSaveRequest request, Long userId);

    void publishPaper(String paperId, ExamPublishRequest request, Long userId);

    void revokePaper(String paperId);

    void deletePaper(String paperId);

    ExamPaperResponse getPaperById(String paperId);

    PageResponse<ExamPaperResponse> listPapers(String status, Integer page, Integer pageSize);

    List<ExamPaperResponse> listPapersByDept(Long deptId);

    Map<String, Object> getPaperAssignment(String paperId);
}