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)[];
}