29 lines
798 B
TypeScript
29 lines
798 B
TypeScript
import { Course } from "./course";
|
|
import { Identifiable } from "./common";
|
|
|
|
export type Semester = number;
|
|
|
|
export interface Student extends Identifiable {
|
|
name: string;
|
|
surname: string;
|
|
email: string;
|
|
albumNumber: number;
|
|
semester: Semester;
|
|
course: Course;
|
|
}
|
|
|
|
export function isStudentDataComplete(student: Student): boolean {
|
|
return getMissingStudentData(student).length === 0;
|
|
}
|
|
|
|
export function getMissingStudentData(student: Student): (keyof Student)[] {
|
|
return [
|
|
!!student.name || "name",
|
|
!!student.surname || "surname",
|
|
!!student.email || "email",
|
|
!!student.albumNumber || "albumNumber",
|
|
!!student.semester || "semester",
|
|
// !!student.course || "course",
|
|
].filter(x => x !== true) as (keyof Student)[];
|
|
}
|