import { OptionalExceptionType } from '@/constants/enumerate';
import { PageResult, PageParams } from './common';

export interface ReviewStatInfo {
  // 任务已完成数
  taskFinishedCount: number;
  // 任务待完成数
  taskUnfinishedCount: number;
  // 科目已完成数
  courseFinishedCount: number;
  // 科目待完成数
  courseUnfinishedCount: number;
}

// 复核统计列表项目： 科目名称 选做科目 试卷总量	任务数	已复核数	待复核数	完成进度	已复核次数
export interface ReviewStatItem {
  // 科目名称
  courseName: string;
  // 选做科目
  isOptional: boolean;
  // 试卷总量
  paperCount: number;
  // 任务数
  taskCount: number;
  // 已复核数
  reviewedCount: number;
  // 待复核数
  unReviewedCount: number;
  // 完成进度
  progress: number;
  // 已复核次数
  reviewedTimes: number;
}
export type ReviewStatListPageRes = PageResult<ReviewStatItem>;

export interface ReviewStatListFilter {
  // 科目
  subjectId: number | null;
  // 选做科目
  isOptional: boolean | null;
  // 完成进度
  isFinished: boolean | null;
}
export type ReviewStatListPageParams = PageParams<ReviewStatListFilter>;

// 全卷复核
// 全卷复核列表项目：科目	密号	选做异常	客观分	主观分	试卷总分	得分明细
export interface FullReviewItem {
  // 主键
  id: number;
  // 科目
  courseName: string;
  // 密号
  secretNo: string;
  // 选做异常
  isOptionalException: boolean;
  // 客观分
  objectiveScore: number;
  // 主观分
  subjectiveScore: number;
  // 试卷总分
  totalScore: number;
  // 得分明细
  scoreDetail: string;
}
export type FullReviewListPageRes = PageResult<FullReviewItem>;

export interface FullReviewListFilter {
  // 科目
  subjectId?: number;
  // 选做异常
  isOptionalException?: boolean;
  // 状态：已复核、未复核
  isReviewed?: boolean;
  // 学院
  academyId?: number;
  // 试卷总分
  totalStartScore?: number;
  totalEndScore?: number;
  // 选做题
  optionalExceptionType?: OptionalExceptionType;
  // 复核次数
  reviewedTimes?: number;
  // 复核人
  reviewer?: string;
  // 大题号
  bigQuestionNo?: number;
  // 大题得分
  bigQuestionStartScore?: number;
  bigQuestionEndScore?: number;
  // 小题得分
  smallQuestionScore?: number;
  // 密号
  secretNo?: string;
}
export type FullReviewListPageParams = PageParams<FullReviewListFilter>;

// 成绩校验
// 成绩校验列表项目：考生编号 科目 满分 状态 试卷总分 得分明细
export interface ScoreCheckItem {
  // 主键
  id: number;
  // 考生编号
  studentNo: string;
  // 科目
  courseName: string;
  // 科目编号
  courseCode: string;
  // 满分
  totalScore: number;
  // 状态
  status: string;
  // 试卷总分
  paperScore: number;
  // 得分明细
  scoreDetail: string;
}
export type ScoreCheckListPageRes = PageResult<ScoreCheckItem>;
