108 lines
2.1 KiB
TypeScript
108 lines
2.1 KiB
TypeScript
|
|
export type Room = {
|
|
public: boolean;
|
|
global_results: boolean;
|
|
name: string,
|
|
id_code: string,
|
|
members: (Member | Waiter)[]
|
|
parcours: Parcours[]
|
|
};
|
|
export type Waiting = {
|
|
waiter_id: string,
|
|
username: string,
|
|
room: { name: string, id_code: string }
|
|
}
|
|
|
|
export type Parcours = {
|
|
name: string,
|
|
best_note: number,
|
|
id_code: string,
|
|
validated: boolean
|
|
}
|
|
|
|
export type Member = {
|
|
username: string,
|
|
reconnect_code: string,
|
|
isUser: boolean,
|
|
id_code: string,
|
|
isAdmin: string,
|
|
online: boolean,
|
|
clientId: string
|
|
}
|
|
|
|
export type Waiter = {
|
|
username: string,
|
|
waiter_id: string
|
|
}
|
|
|
|
export type ExoInfos = {
|
|
name: string,
|
|
consigne: string,
|
|
id_code: string
|
|
}
|
|
export type ParcoursInfos = {
|
|
name: string,
|
|
id_code: string,
|
|
time: number,
|
|
max_mistakes: number
|
|
}
|
|
|
|
|
|
|
|
export type Input = {
|
|
value: string;
|
|
index: number;
|
|
correction?: string | null;
|
|
valid?: boolean | null;
|
|
};
|
|
|
|
export type Calcul = {
|
|
calcul: string,
|
|
inputs: Input[]
|
|
}
|
|
|
|
export type Challenge = {
|
|
exo: ExoInfos,
|
|
data: Calcul[]
|
|
}
|
|
|
|
export type Note = {
|
|
value: number,
|
|
total: number,
|
|
temporary: boolean
|
|
}
|
|
|
|
|
|
export type ExoSelect = {
|
|
quantity: number | string,
|
|
exercice_id: string,
|
|
name: string,
|
|
}
|
|
|
|
export type ChallengeInfo = {
|
|
challenger: { name: string, id_code: string },
|
|
challenges: {id_code: string, mistakes: number, time: number, isCorriged: boolean, canCorrige: boolean, validated: boolean}[]
|
|
}
|
|
|
|
export type Exercices = {
|
|
exercice_id: string,
|
|
quantity: number,
|
|
name: string;
|
|
examples: { type: string; data: { calcul: string; correction: string }[] };
|
|
};
|
|
|
|
export type ParcoursRead = {
|
|
name: string,
|
|
time: number,
|
|
max_mistakes: number,
|
|
id_code: string,
|
|
rank: number | null,
|
|
memberRank: number | null,
|
|
validated: boolean,
|
|
challenges: { [id: string]: ChallengeInfo }
|
|
exercices: Exercices[],
|
|
ranking: { name: string, id_code: string, avg: number }[],
|
|
tops: { challenger: { name: string, id_code: string }, mistakes: number, time: number }[],
|
|
pb: { mistakes: number, time: number },
|
|
avg: number | null
|
|
} |