export interface Exam {
  id: string;
  title: string;
  description: string;
  slug: string;
  questions: Question[];
  createdAt: Date;
  updatedAt: Date;
}

export interface Question {
  id: string;
  text: string;
  options: string[];
  correctAnswer: 'A' | 'B' | 'C' | 'D';
  order: number;
  examId: string;
}

export interface AnswerOption {
  label: 'A' | 'B' | 'C' | 'D';
  text: string;
}

export interface QuestionState {
  questionId: string;
  selectedAnswer: string | null;
  status: 'correct' | 'incorrect' | 'unanswered';
}

export interface CreateExamInput {
  title: string;
  description: string;
}

export interface CreateQuestionInput {
  text: string;
  options: [string, string, string, string];
  correctAnswer: 'A' | 'B' | 'C' | 'D';
  examId: string;
}

export interface UpdateQuestionInput {
  text?: string;
  options?: [string, string, string, string];
  correctAnswer?: 'A' | 'B' | 'C' | 'D';
  order?: number;
}

export interface ReorderQuestionsInput {
  questionIds: string[];
}

export interface CheckAnswerInput {
  questionId: string;
  selectedAnswer: string;
}

export interface CheckAnswerResponse {
  correct: boolean;
  correctAnswer: string;
}
