import type {
  MyPaperPageQuery,
  OnlineExamDetail,
  OnlineExamPaper,
} from '#/views/x/tms/onlineExam/types';

import { defHttp } from '#/api/request';
import {
  mockGetMyPaperDetail,
  mockQueryMyPapers,
  mockStartExam,
  mockSubmitExam,
} from '#/views/x/tms/onlineExam/mock';

/** 后端未就绪前走 mock；联调后改为 false */
const USE_MOCK = true;
const prefix = '/api/tms/online-exam';

export function getMyPaperList(params: MyPaperPageQuery) {
  if (USE_MOCK) return mockQueryMyPapers(params);
  return defHttp.get({ url: `${prefix}/my-papers`, params });
}

export function getMyPaperDetail(id: string) {
  if (USE_MOCK) return mockGetMyPaperDetail(id);
  return defHttp.get<OnlineExamDetail>({ url: `${prefix}/my-papers/${id}` });
}

export function startOnlineExam(myPaperId: string) {
  if (USE_MOCK) return mockStartExam(myPaperId);
  return defHttp.post<OnlineExamPaper>({ url: `${prefix}/start`, data: { myPaperId } });
}

export function submitOnlineExam(examId: string, data: { score: number; answers: Record<string, string | string[]> }) {
  if (USE_MOCK) return mockSubmitExam(examId, data.score);
  return defHttp.post({ url: `${prefix}/${examId}/submit`, data });
}
