interface CreatedBy {
  id: string;
  name: string;
  email: string;
}

export type ExamPhase = "IDLE" | "MODULE" | "BREAK" | "FINISHED" | "QUIT";

export type QuestionType = "MCQ" | "TEXT" | "SHORT_ANSWER";

export interface Subject {
  name: string;
  section: string;
  parent_id: string;
  id: string;
  slug: string;
  parent_name: string;
}

export interface Option {
  text: string;
  image_url: string;
  sequence_order: number;
  id: string;
}

export interface Question {
  equation?: string[];
  difficulty: string;
  text: string;
  context: string;
  context_image_url: string;
  type: string;
  section: string;
  image_url: string;
  index: number;
  id: string;
  options: Option[];
  topics: Topic[];
  correct_answer: string;
  explanation: string;
}

export interface Topic {
  id: string;
  name: string;
}

export interface Module {
  title: string;
  duration: number;
  section: string;
  difficulty: string;
  description: string;
  sequence_order: number;
  id: string;
  practice_sheet_id: string;
  subject: Subject;
  questions: Question[];
  questions_count: number;
}

export interface PracticeSheet {
  title: string;
  difficulty: string;
  time_limit: number;
  description: string;
  is_locked: boolean;
  id: string;
  created_by_id: string;
  created_at: string;
  updated_at: string;
  questions_count: number;
  topics: Topic[];
  created_by: CreatedBy;
  modules: Module[];
  user_status: string;
  modules_count: number;
}
