-
Bastien DUMONT authoredBastien DUMONT authored
quiz.model.ts 1.25 KiB
import {
CustomQuestionType,
TimeStep,
UserQuestionState,
UserQuizState,
} from 'enums'
import { DateTime } from 'luxon'
export interface Answer {
answerLabel: string
isTrue: boolean
}
export interface QuestionEntity {
questionLabel: string
answers: Answer[]
explanation: string
source: string
}
export interface UserQuestion extends QuestionEntity {
result: UserQuestionState
}
export interface CustomQuestionEntity {
questionLabel: string
type: CustomQuestionType
timeStep: TimeStep
interval: TimeStep
period: CustomPeriod
singleFluid: boolean
}
export interface UserCustomQuestion extends CustomQuestionEntity {
result: UserQuestionState
}
export interface CustomPeriod {
day?: number
month?: number
year?: number
weekday?: number
}
export interface QuizEntity {
id: string
questions: QuestionEntity[]
customQuestion: CustomQuestionEntity
startDate: string | null
}
export interface UserQuiz
extends Omit<QuizEntity, 'questions' | 'customQuestion' | 'startDate'> {
questions: UserQuestion[]
customQuestion: UserCustomQuestion
state: UserQuizState
result: number
startDate: DateTime | null
}
export interface IntervalAnswer {
date: DateTime
value: number
}
export interface OtherAnswer {
value: number
}