/* eslint-disable */
// @ts-ignore
import request from '@/http/vue-query';
import { CustomRequestOptions } from '@/http/types';

import * as API from './types';

/** 按题目获取阅卷质量统计 根据exam_subject_id查询阅卷质量统计，包括客观题和主观题的得分情况 GET /marking-quality */
export async function markingQualityUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.MarkingQualityResponse;
    }
  >('/marking-quality', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 检查打分 根据题目ID等参数检查打分情况，支持多种过滤和排序条件 GET /marking-quality/check-score */
export async function markingQualityCheckScoreUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityCheckScoreUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.CheckScoreResponse;
    }
  >('/marking-quality/check-score', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 导出客观题明细 根据exam_subject_id导出客观题明细Excel文件，包含题目类型、得分情况等详细信息 GET /marking-quality/export-objective */
export async function markingQualityExportObjectiveUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityExportObjectiveUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: string;
    }
  >('/marking-quality/export-objective', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 导出所有主观题阅卷质量 根据exam_subject_id导出所有主观题的阅卷质量Excel文件，包含每个主观题的阅卷情况统计 GET /marking-quality/export-subjective */
export async function markingQualityExportSubjectiveUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityExportSubjectiveUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: string;
    }
  >('/marking-quality/export-subjective', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 导出老师评卷明细 根据question_id、teacher_id等参数导出老师的评卷明细Excel文件，包含学生信息、评分详情等 GET /marking-quality/export-teacher-detail */
export async function markingQualityExportTeacherDetailUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityExportTeacherDetailUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: string;
    }
  >('/marking-quality/export-teacher-detail', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 获取题目阅卷质量 根据question_id获取指定题目的阅卷质量统计，包含大题、小题、评价方法、总分数、平均分数等详细信息 GET /marking-quality/question */
export async function markingQualityQuestionUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityQuestionUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.GetQuestionMarkingQualityResponse;
    }
  >('/marking-quality/question', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 打回重阅 根据question_id、school_id、teacher_id、reread_type打回重阅，支持全部重阅、分数重阅、时间重阅 POST /marking-quality/reread */
export async function markingQualityRereadUsingPost({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityRereadUsingPostParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.RereadMarkingResponse;
    }
  >('/marking-quality/reread', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 根据记录ID打回重阅 根据记录ID打回重阅，软删除该记录，并且在老师的任务队列中添加上任务 POST /marking-quality/reread-by-record */
export async function markingQualityRereadByRecordUsingPost({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityRereadByRecordUsingPostParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.RereadByRecordIDResponse;
    }
  >('/marking-quality/reread-by-record', {
    method: 'POST',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 获取分数分布统计 根据exam_subject_id获取分数分布统计，支持按学校、教师、评价方法进行过滤 GET /marking-quality/score-distribution */
export async function markingQualityScoreDistributionUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityScoreDistributionUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.GetScoreDistributionResponse;
    }
  >('/marking-quality/score-distribution', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 查询学生答题卡 根据info_id查询学生答题卡的详细信息和题目详情 GET /marking-quality/student-answer-sheet */
export async function markingQualityStudentAnswerSheetUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityStudentAnswerSheetUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.GetStudentAnswerSheetResponse;
    }
  >('/marking-quality/student-answer-sheet', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 按考生获取阅卷质量统计 根据exam_subject_id等参数获取考生的阅卷质量统计，支持按学校、班级、关键词筛选 GET /marking-quality/student-quality */
export async function markingQualityStudentQualityUsingGet({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityStudentQualityUsingGetParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.GetStudentMarkingQualityResponse;
    }
  >('/marking-quality/student-quality', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 根据扫描信息ID和题目ID修改评分 根据扫描信息ID和题目ID修改评分，直接更新exam_subject_scan_answer_sheet_answer_detail表的final_score字段 PUT /marking-quality/update-score */
export async function markingQualityUpdateScoreUsingPut({
  params,
  options,
}: {
  // 叠加生成的Param类型 (非body参数openapi默认没有生成对象)
  params: API.markingQualityUpdateScoreUsingPutParams;
  options?: CustomRequestOptions;
}) {
  return request<
    API.Response & {
      data?: API.UpdateScoreByRecordIDResponse;
    }
  >('/marking-quality/update-score', {
    method: 'PUT',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
