| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- import { AxiosRequestConfig } from 'axios'
- export type ID = number | string
- export interface AxiosResponseInfo {}
- export interface ReceivedData<R = {}, E = 0> extends AxiosResponseInfo {
- err?: E | 0 | 401
- res?: R
- page?: PageSerializer
- }
- export interface ErrorData extends AxiosResponseInfo {
- err: number
- msg: string
- }
- export interface PageSerializer {
- page?: number
- limit?: number
- size?: number
- total?: number
- }
- export type Pageable<T = {}> = T & {
- page?: number
- limit?: number
- }
- export type LocalDateTime = string
- export type ExamStatus =
- | 'READY' // 考试已准备好,考试尚未开始
- | 'AVAILABLE' // 考试可用,表示考试正在进行
- | 'FINISHED' // 考试已完成,在考试结束后使用
- | 'CLOSED' // 考试已关闭,表示考试生命周期结束
- export interface ExamSerializer {
- id?: number
- title?: string
- startAt?: LocalDateTime
- endAt?: LocalDateTime
- status?: ExamStatus
- creator?: {
- id?: number
- username?: string
- }
- joined?: boolean
- // result?: ResultSerializer
- isReentryPermitted?: boolean
- inviteCode?: string
- comment?: string
- participantsNumber?: number
- lastTime?: number
- difficulty?: number
- }
- export interface ResultSerializer {
- id?: number
- score?: number
- lastCommitAt?: LocalDateTime
- exam?: {
- id?: number
- title?: string
- }
- owner?: {
- id?: number
- username?: string
- }
- commits?: Array<{
- id?: number
- finished?: boolean
- score?: number
- createdAt?: LocalDateTime
- }>
- }
- export interface OptionSerializer {
- label?: string
- content?: string
- }
- export interface QuestionSerializer {
- id?: number
- stem?: string
- }
- export type ChoiceAnswer = string
- export interface ChoiceQuestionSerializer extends QuestionSerializer {
- studentId?: number
- single?: boolean
- options?: Array<OptionSerializer>
- lastCommitAnswers?: ChoiceAnswer
- }
- export interface CodeTuple {
- lang?: string
- code?: string
- }
- export interface CodeQuestionSerializer extends QuestionSerializer {
- studentId?: number
- codeTuples?: Array<CodeTuple>
- lastCommitCode?: string
- }
- export interface ExamQuestionSerializer {
- id?: number
- singleChoiceQuestions?: Array<ChoiceQuestionSerializer>
- multiChoiceQuestions?: Array<ChoiceQuestionSerializer>
- codeQuestions?: Array<CodeQuestionSerializer>
- }
|