package cn.yunzhixue.ability.center.examsprint.application.report;

import cn.yunzhixue.ability.center.examsprint.contracts.report.CreateExamSprintReportResponse;
import cn.yunzhixue.ability.center.examsprint.contracts.report.CreateExamSprintReportWithUrlResponse;
import cn.yunzhixue.ability.center.examsprint.contracts.report.ExamSprintReportDetailResponse;
import com.fasterxml.jackson.databind.JsonNode;

public interface ExamSprintReportApplicationService {

    CreateExamSprintReportResponse createOutlookReport(JsonNode payload);

    CreateExamSprintReportResponse createAchievementReport(JsonNode payload);

    CreateExamSprintReportWithUrlResponse createOutlookReportSync(JsonNode payload);

    CreateExamSprintReportWithUrlResponse createAchievementReportSync(JsonNode payload);

    ExamSprintReportDetailResponse getReport(String reportId);

    ReportDownloadContent downloadReport(String reportId);

    record ReportDownloadContent(String fileName, byte[] bytes, String contentType) {
    }
}
