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

// 识别结果检查 数据列表筛选条件
export interface ResultCheckDataListFilter {
  // 是否缺考
  absent: boolean | undefined;
  // 准考证号
  examNumber: string;
  // 科目
  subjectCodeInput: string;
  // 科目范围模式
  subjectCodeFunction: DataScopeMode;
  // 考点
  examSiteInput: string;
  // 考点范围模式
  examSiteFunction: DataScopeMode;
  // 客观题是否有识别结果
  objectiveFill: boolean | undefined;
  // 客观题总分
  objectiveScoreInput: number | null;
  // 客观题总分范围模式
  objectiveScoreFunction: NumberScopeMode;
  // 主观题总分
  subjectiveScoreInput: number | null;
  // 主观题总分范围模式
  subjectiveScoreFunction: NumberScopeMode;
  // 试卷类型
  paperType: string;
}

// 图片检查 数据列表筛选条件
export interface ImageCheckDataListFilter {
  // 姓名
  name: string;
  // 准考证号
  examNumber: string;
  // 学号
  studentCode: string;
  // 科目
  subjectCode: string | null;
}
export type ImageCheckPageParams = PageParams<ImageCheckDataListFilter>;

// 图片检查列表： 准考证号	姓名	学号	科目	扫描批次	上传时间
export interface ImageCheckDataListItem {
  // 主键
  id: number;
  // 姓名
  name: string;
  // 准考证号
  examNumber: string;
  // 学号
  studentCode: string;
  // 科目
  subjectCode: string | null;
  // 扫描批次
  batchCode: string;
  // 上传时间
  uploadTime: string;
}
export type ImageCheckPageRes = PageResult<ImageCheckDataListItem>;

// 人工确认 数据列表筛选条件
export interface ManualConfirmDataListFilter {
  // 确认类型
  type: string;
  // 科目
  subjectCode: string;
  // 考点
  examSite: string;
}
export type ManualConfirmPageParams = PageParams<ManualConfirmDataListFilter>;

// 人工确认列表： 准考证号	姓名	学号	科目	考点	扫描批次	上传时间
export interface ManualConfirmDataListItem {
  // 主键
  id: number;
  // 姓名
  name: string;
  // 准考证号
  examNumber: string;
  // 学号
  studentCode: string;
  // 科目
  subjectCode: string;
  subjectName: string;
  // 考点
  examSite: string;
  // 扫描批次
  batchCode: string;
  // 上传时间
  uploadTime: string;
}
export type ManualConfirmPageRes = PageResult<ManualConfirmDataListItem>;

export interface CheckRes {
  message: string;
  success: boolean;
}
