import { TaughtClass } from "./api/types/semesters/versions/class"; import { SemesterConfiguration } from "./api/types/semesters/config"; export type SemesterVersion = { semester: string; version: string | null; }; export type NameModule = { name: string; modules: TaughtClass[]; }; export type NameModuleNumber = { name: number; modules: TaughtClass[]; }; export type CalendarEvent = { taughtClass: TaughtClass | null; personalEvent: PersonalEvent | null; topOffset: number; leftOffset: number; length: number; width: number; }; export type StudienjahrgangAnmeldung = { studienjahrgangAnmeldungId: number; studienjahrgangId: number; studierendeId: number; statusId: number; statusName: string; anmeldungsDatum: string; hochschule: string; ausbildungsart: number; }; export type ModulAnrechnung = { modulAnrechnungId: number; studierendeId: number; modulId: number; anrechnungEcts: number; }; export type PauschalAnrechnung = { pauschalAnrechnungId: number; modulStandardGruppeId: number; studierendeId: number; studiengangId: number; anrechnungEcts: number; zeugnisText: string; }; export type StudenthubStudent = { studierendeId: number | null; anrede: string | null; nachname: string | null; vorname: string | null; adresse1: string | null; adresse2: string | null; plz: string | null; ort: string | null; land: string | null; emailAdmin: string | null; emailEducation: string | null; emailPrivat: string | null; telefon: string | null; mobile: string | null; bild: string | null; geburtsdatum: string | null; beruf: string | null; studienjahrgangAnmeldungen: StudienjahrgangAnmeldung[] | null; modulAnrechnungen: ModulAnrechnung[] | null; pauschalAnrechnungen: PauschalAnrechnung[] | null; }; export type Modulanlass = { modulanlassId: number; modulId: number; nummer: string; bezeichnung: string; statusId: number; statusName: string; hochschule: string; ausbildungsart: number; maxTeilnehmende: number; datumVon: string; datumBis: string; wochentag: null; zeitVon: null; zeitBis: null; anzahlAnmeldung: number; anlassleitungen: object[]; }; export type StudenthubAnmeldung = { modulanlassAnmeldungId: number | null; modulanlassId: number | null; studierendeId: number | null; statusId: number | null; statusName: string | null; freieNote: number | null; noteId: null | null; titelArbeit: null | null; text: string | null; anmeldungsDatum: string | null; hochschule: string | null; ausbildungsart: number | null; modulanlass: Modulanlass | null; bestanden: boolean | null; noteBezeichnung: string | null; }; export type FilterRule = { column: ClassSelectorColumn; filterData: { term?: string; degree?: string; startTime?: number; endTime?: number; teachingType?: TeachingType | ""; }; pk: number; enabled: boolean; }; export type PersonalEvent = { name: string; weekday: number; from: number; ects?: number; to: number; id: string; }; export type PlanningDump = { modules: string[]; version: string; name?: string; personalEvents?: PersonalEvent[]; lastPlanRequestTimestamp?: number; oldPlanReminderTimestamp?: number; doNotRequestVersionUpgrade?: boolean; }; export type PlanEntry = { name: string; planVersion: string; }; export type ClassesVersion = { version: string; ready: Promise | null; loaded: boolean; teachers: NameModule[]; rooms: NameModule[]; classes: NameModule[]; days: NameModuleNumber[]; taughtClasses: TaughtClass[]; blockClasses: TaughtClass[]; degreePrograms: string[]; config: SemesterConfiguration; }; export type ClassUpgradeDifference = { oldVersion: string; newVersion: string; removals: TaughtClass[]; minorChanges: ClassUpgradeMinorDifferencesSet[]; }; export type ClassUpgradeMinorDifferencesSet = { name: string; changes: ClassUpgradeMinorDifferences[]; }; export type ClassUpgradeMinorDifferences = { difference: string; oldValue: string; newValue: string; }; export enum Ordering { None = 0, Asc = 1, Desc = -1, } export enum TeachingType { OnSite = "on_site", Hybrid = "hybrid", Online = "online", Blockmodule = "blockmodule", } export enum ClassSelectorColumn { Module = "name", Time = "weekday", Class = "class", Lecturer = "lecturer", Room = "room", TeachingType = "teaching_type", MSP = "msp", Degree = "degree", } export enum ModuleLanguages { EN = "en", DE = "de", } export enum MainView { ModulePlanner = "ModulePlanner", DependencyTree = "DependencyTree", } export enum ColourScheme { Dark = "dark", Blinding = "blinding", }