51 lines
796 B
TypeScript
51 lines
796 B
TypeScript
export type ID = number;
|
|
|
|
export interface Node {
|
|
id: ID;
|
|
}
|
|
|
|
export enum UserRole {
|
|
STUDENT = "Student",
|
|
TEACHER = "Teacher",
|
|
}
|
|
|
|
export interface User extends Node {
|
|
firstName: string;
|
|
lastName: string;
|
|
name: string;
|
|
username: string;
|
|
email: string;
|
|
role: UserRole;
|
|
admin: boolean;
|
|
externalId: ID;
|
|
student?: Student;
|
|
teacher?: Teacher;
|
|
}
|
|
|
|
export interface UserExternal {
|
|
user: User;
|
|
}
|
|
|
|
export interface Student extends Node, UserExternal {
|
|
vote?: Vote;
|
|
}
|
|
|
|
export interface Teacher extends Node, UserExternal {
|
|
maxStudents: number;
|
|
}
|
|
|
|
export interface Vote extends Node {
|
|
student: Student;
|
|
}
|
|
|
|
export interface TeacherVote extends Node {
|
|
teacher: Teacher;
|
|
priority: number;
|
|
}
|
|
|
|
export interface LoginPayload {
|
|
user: User;
|
|
token: string;
|
|
bearer: string;
|
|
}
|