diff options
Diffstat (limited to 'src/models/PeerTeacher.ts')
| -rw-r--r-- | src/models/PeerTeacher.ts | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/models/PeerTeacher.ts b/src/models/PeerTeacher.ts new file mode 100644 index 0000000..f387431 --- /dev/null +++ b/src/models/PeerTeacher.ts @@ -0,0 +1,41 @@ +import EventInfo from './EventInfo'; + +export default class PeerTeacher { + firstname: string; + + lastname: string; + + uin: number; + + events: EventInfo[]; + + assignedLabs: Set<string>; + + constructor(firstname = '', lastname = '', uin = 0) { + this.firstname = firstname; + this.lastname = lastname; + this.uin = uin; + this.events = []; + this.assignedLabs = new Set(); + } + + conflictsWith(event: EventInfo) { + let conflicts = false; + this.events.every((item) => { + if (item.conflictsWith(event)) { + conflicts = true; + return false; + } + return true; + }); + return conflicts; + } + + get name() { + return `${this.firstname} ${this.lastname}`; + } + + get id() { + return this.uin; + } +} |
