Files
Timetable-V2/src/demoData.js

335 lines
8.0 KiB
JavaScript

export const DEMO_SESSION_INFO = {
authenticated: true,
appliedKeys: [],
permissions: [],
};
export const DEMO_CLASS_LIST = ["Demo", "Empty"];
export const DEMO_TIMETABLE = {
timetables: [
{
id: 1,
title: "Demo",
createdAt: "2023-08-28T08:00:53.233Z",
updatedAt: "2025-01-07T11:37:42.590Z",
class: "Demo",
validFrom: "2023-08-28T08:00:53.233Z",
validUntil: null,
data: [
[
[{}],
[{ room: "R 206", length: 1, subject: "MA1", teacher: "Wen" }],
[{ room: "R 307", length: 2, subject: "en1", teacher: "Fre" }],
[{ room: "R 005", length: 2, subject: "de2", teacher: "Str" }],
],
[
[{ room: "R 107", length: 2, subject: "IN2", teacher: "Kom" }],
[{ room: "R 206", length: 2, subject: "MA1", teacher: "Wen" }],
[{ room: "R 403", subject: "geo2", teacher: "Spl" }],
[{ room: "", length: 1, subject: "", teacher: "" }],
[{ room: "R 007", subject: "Sp-Th", teacher: "Bun" }],
[{ room: "R 313", subject: "pw1", teacher: "Göl" }],
],
[
[{ room: "R 313", length: 2, subject: "pw1", teacher: "Göl" }],
[{ room: "R 314", length: 2, subject: "ge1", teacher: "Mog" }],
[{ room: "R 307", subject: "en1", teacher: "Fre" }],
[{ room: "R 403", length: 2, subject: "geo2", teacher: "Spl" }],
[{}],
[{ room: "R 002", length: 2, subject: "Sp-Fit", teacher: "Gan" }],
],
[
[{ room: "R 206", length: 2, subject: "MA1", teacher: "Wen" }],
[{ room: "R 107", length: 2, subject: "IN2", teacher: "Kom" }],
[{ room: "R 209", subject: "ph1", teacher: "And" }],
[{ room: "R 005", length: 2, subject: "Sp-Th", teacher: "Bun" }],
],
[
[{ room: "R 107", length: 2, subject: "IN2", teacher: "Kom" }],
[{ room: "R 314", length: 1, subject: "ge1", teacher: "Mog" }],
[{ room: "R 005", subject: "de2", teacher: "Str" }],
[{ room: "R 209", length: 2, subject: "ph1", teacher: "And" }],
],
],
source: "Demo Provider",
trusted: true,
},
],
times: [
{
lesson: 1,
start: "1970-01-01T07:00:00.000Z",
end: "1970-01-01T07:45:00.000Z",
},
{
lesson: 3,
start: "1970-01-01T08:50:00.000Z",
end: "1970-01-01T09:35:00.000Z",
},
{
lesson: 5,
start: "1970-01-01T11:10:00.000Z",
end: "1970-01-01T11:55:00.000Z",
},
{
lesson: 6,
start: "1970-01-01T12:00:00.000Z",
end: "1970-01-01T12:45:00.000Z",
},
{
lesson: 7,
start: "1970-01-01T12:50:00.000Z",
end: "1970-01-01T13:35:00.000Z",
},
{
lesson: 8,
start: "1970-01-01T13:40:00.000Z",
end: "1970-01-01T14:25:00.000Z",
},
{
lesson: 9,
start: "1970-01-01T14:30:00.000Z",
end: "1970-01-01T15:15:00.000Z",
},
{
lesson: 10,
start: "1970-01-01T15:20:00.000Z",
end: "1970-01-01T16:05:00.000Z",
},
{
lesson: 11,
start: "1970-01-01T16:10:00.000Z",
end: "1970-01-01T16:55:00.000Z",
},
{
lesson: 2,
start: "1970-01-01T07:45:00.000Z",
end: "1970-01-01T08:30:00.000Z",
},
{
lesson: 4,
start: "1970-01-01T09:40:00.000Z",
end: "1970-01-01T10:25:00.000Z",
},
],
};
export function getDemoSubstitutions(date) {
let weekday = new Date(date).getDay();
switch (weekday) {
case 1: {
return [
{
id: 0,
class: ["Demo"],
type: "cancellation",
rawType: "Entfall",
lesson: 5,
date: date,
notes: null,
teacher: "Str",
change: {},
},
{
id: 1,
class: ["Demo"],
type: "cancellation",
rawType: "Entfall",
lesson: 6,
date: date,
notes: null,
teacher: "Str",
change: {},
},
{
id: 2,
class: ["Demo"],
type: "change",
rawType: "Raum-Vtr.",
lesson: 3,
date: date,
notes: null,
teacher: "Fre",
change: {
room: "308",
teacher: "Fre",
subject: "en1",
},
},
];
}
case 2: {
return [
{
id: 3,
class: ["Demo"],
type: "cancellation",
rawType: "Entfall",
lesson: 7,
date: date,
notes: null,
teacher: "Bun",
change: {},
},
{
id: 4,
class: ["Demo"],
type: "change",
rawType: "Vertretung",
lesson: 8,
date: date,
notes: null,
teacher: "Bun",
change: {
room: "007",
teacher: "Aci",
subject: "Sp-Th",
},
},
];
}
case 3: {
return [
{
id: 5,
class: ["Demo"],
type: "cancellation",
rawType: "Entfall",
lesson: 9,
date: date,
notes: "Aufgaben im Sekretariat",
teacher: "Gan",
change: {},
},
{
id: 6,
class: ["Demo"],
type: "cancellation",
rawType: "Entfall",
lesson: 10,
date: date,
notes: null,
teacher: "Gan",
change: {},
},
];
}
}
return [];
}
export function getDemoHistory(date) {
let weekday = new Date(date).getDay();
switch (weekday) {
case 1: {
return [
...getDemoSubstitutions(date).map((e) => substitutionToChange(e)),
];
}
case 2: {
return [
...getDemoSubstitutions(date).map((e) => substitutionToChange(e)),
{
id: 101,
type: "deletion",
class: ["Demo"],
substitutionId: 100,
lesson: 5,
updatedAt: date - 47800000,
date: date,
teacher: null,
change: {
date: date,
type: "cancellation",
class: ["Demo"],
notes: null,
change: {},
lesson: 5,
rawType: "Entfall",
teacher: "Spl",
},
parseEventId: 0,
},
{
id: 100,
type: "addition",
class: ["Demo"],
substitutionId: 100,
lesson: 5,
updatedAt: date - 57800000,
date: date,
teacher: null,
change: {
date: date,
type: "cancellation",
class: ["Demo"],
notes: null,
change: {},
lesson: 5,
rawType: "Entfall",
teacher: "Spl",
},
parseEventId: 0,
},
];
}
case 3: {
return [
{
id: 102,
type: "change",
class: ["Demo"],
substitutionId: 5,
lesson: 9,
updatedAt: date - 57800000,
date: date,
teacher: null,
change: {
notes: {
before: null,
after: "Aufgaben im Sekretariat",
},
},
parseEventId: 0,
},
...getDemoSubstitutions(date)
.map((e) => substitutionToChange(e))
.map((e) => {
e.change.notes = null;
return e;
}),
];
}
}
return [];
}
function substitutionToChange(substitution) {
return {
id: substitution.id,
type: "addition",
class: substitution.class,
substitutionId: substitution.id,
lesson: substitution.lesson,
updatedAt: substitution.date - 46800000,
date: substitution.date,
teacher: null,
change: {
date: substitution.date,
type: substitution.type,
class: substitution.class,
notes: substitution.notes,
change: substitution.change,
lesson: substitution.lesson,
rawType: substitution.rawType,
teacher: substitution.teacher,
},
parseEventId: 0,
};
}