export type ExamModule = "reading" | "listening" | "writing" | "speaking" | "level";

export type ExamAccess = "public" | "private" | "confidential";

export interface Exam {
  id: number;
  title: string;
  module: ExamModule;
  subject_id?: number;
  topic_ids?: number[];
  created_by: string;
  rubric_ids: number[];
  difficulty: string;
  exercises_count: number;
  timer: number;
  access: ExamAccess;
  created_at: string;
  is_diagnostic?: boolean;
}

export interface Rubric {
  id: number;
  name: string;
  description: string;
  module: ExamModule;
  criteria: RubricCriterion[];
}

export interface RubricCriterion {
  id: number;
  name: string;
  description: string;
  max_score: number;
}

export interface RubricGroup {
  id: number;
  name: string;
  rubric_ids: number[];
}

export interface ExamStructure {
  id: number;
  name: string;
  entity_id: number;
  entity_name: string;
  modules: ExamModule[];
  created_at: string;
}
