mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 15:18:32 -06:00
41 lines
1009 B
TypeScript
41 lines
1009 B
TypeScript
import { z } from "zod";
|
|
import {
|
|
LocalQuizQuestionAnswer,
|
|
zodLocalQuizQuestionAnswer,
|
|
} from "./localQuizQuestionAnswer";
|
|
|
|
export enum QuestionType {
|
|
MULTIPLE_ANSWERS = "multiple_answers",
|
|
MULTIPLE_CHOICE = "multiple_choice",
|
|
ESSAY = "essay",
|
|
SHORT_ANSWER = "short_answer",
|
|
MATCHING = "matching",
|
|
NONE = "",
|
|
SHORT_ANSWER_WITH_ANSWERS = "short_answer=",
|
|
}
|
|
|
|
export const zodQuestionType = z.enum([
|
|
QuestionType.MULTIPLE_ANSWERS,
|
|
QuestionType.MULTIPLE_CHOICE,
|
|
QuestionType.ESSAY,
|
|
QuestionType.SHORT_ANSWER,
|
|
QuestionType.MATCHING,
|
|
QuestionType.NONE,
|
|
QuestionType.SHORT_ANSWER_WITH_ANSWERS,
|
|
]);
|
|
|
|
export interface LocalQuizQuestion {
|
|
text: string;
|
|
questionType: QuestionType;
|
|
points: number;
|
|
answers: LocalQuizQuestionAnswer[];
|
|
matchDistractors: string[];
|
|
}
|
|
export const zodLocalQuizQuestion = z.object({
|
|
text: z.string(),
|
|
questionType: zodQuestionType,
|
|
points: z.number(),
|
|
answers: zodLocalQuizQuestionAnswer.array(),
|
|
matchDistractors: z.array(z.string()),
|
|
});
|