generated from muhtadeetaron/nextjs-template
44 lines
945 B
TypeScript
44 lines
945 B
TypeScript
export interface Metadata {
|
|
attempt_id: string;
|
|
test_id: string;
|
|
type: string;
|
|
total_possible_score: number;
|
|
deduction?: string;
|
|
num_questions: number;
|
|
name: string;
|
|
start_time: string; // keep ISO string for consistency
|
|
time_limit_minutes?: number;
|
|
}
|
|
|
|
export type Question = {
|
|
question_id: string;
|
|
question: string;
|
|
options: string[];
|
|
type: "Single" | "Multiple";
|
|
};
|
|
|
|
export interface Test {
|
|
metadata: Metadata;
|
|
questions: Question[];
|
|
}
|
|
|
|
export type Answer = number | null;
|
|
export type AnswersMap = Record<string, Answer>;
|
|
|
|
export interface ExamResult {
|
|
user_id: string;
|
|
test_id: string;
|
|
subject_id: string;
|
|
topic_id: string;
|
|
test_type: string;
|
|
attempt_id: string;
|
|
start_time: string;
|
|
end_time: string;
|
|
user_questions: Question[];
|
|
user_answers: (number | null)[];
|
|
correct_answers: number[];
|
|
correct_answers_count: number;
|
|
wrong_answers_count: number;
|
|
skipped_questions_count: number;
|
|
}
|