aboutsummaryrefslogtreecommitdiff
path: root/src/models/PeerTeacher.ts
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-04-13 00:52:32 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-04-13 00:52:32 -0500
commitf3619b20e1c5baa342eb7466c67c44d3192bb3eb (patch)
tree64a6981599ddcb9fa8ede5364770e1f145c1086f /src/models/PeerTeacher.ts
parent67b7f56f9aeaf5d32cc07d0d776d2e4e95dea21c (diff)
Initial TypeScript refactoring
Diffstat (limited to 'src/models/PeerTeacher.ts')
-rw-r--r--src/models/PeerTeacher.ts41
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;
+ }
+}