mentorenwahl/frontend_old/src/lib/graphql.ts

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;
}