/**
 * 答题卡查看器的类型定义
 */

/**
 * 学生信息
 */
export interface StudentInfo {
  /** 学生姓名 */
  studentName: string
  /** 考号 */
  examNumber: string
  /** 客观题分数 */
  objectiveScore: number
  /** 主观题分数 */
  subjectiveScore: number
  /** 总分 */
  totalScore: number
  /** 满分 */
  fullScore: number
}

/**
 * Konva 形状数据
 */
export interface MarkingShape {
  id: string
  type: 'rect' | 'line' | 'circle'
  x: number
  y: number
  width?: number
  height?: number
  points?: number[]
  radius?: number
  stroke?: string
  strokeWidth?: number
  fill?: string
}

/**
 * 特殊标记（对错符号）
 */
export interface SpecialMark {
  id: string
  type: 'correct' | 'wrong' | 'half'
  x: number
  y: number
  scale?: number
}

/**
 * 文本注释
 */
export interface TextAnnotation {
  id: string
  x: number
  y: number
  text: string
  fontSize: number
  color: string
  fontStyle?: string
}

/**
 * 标记数据（Konva 格式）
 */
export interface KonvaMarkingData {
  version: string
  shapes: MarkingShape[]
  specialMarks: SpecialMark[]
  annotations: TextAnnotation[]
}

/**
 * 标记项（单个题目的批注）
 */
export interface MarkingItem {
  /** 题目ID */
  questionId: string
  /** 题目主序号 */
  questionMajor: number
  /** 题目子序号 */
  questionMinor: number
  /** 所在图片索引（页码） */
  imageIndex: number
  /** 题目区域位置 [x, y, w, h] */
  areaPos: [number, number, number, number]
  /** 得分 */
  score: number
  /** 满分 */
  fullScore: number
  /** 阅卷老师 */
  teacherName?: string
  /** 标记数据（批注、形状等） */
  markingData: KonvaMarkingData
}

/**
 * 答题卡完整数据
 */
export interface AnswerSheetData {
  /** 学生信息 */
  studentInfo: StudentInfo
  /** 答题卡图片 URL 列表 */
  answerSheetImages: string[]
  /** 批注标记列表 */
  markings: MarkingItem[]
}
