types.ts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. import { TaughtClass } from "./api/types/semesters/versions/class";
  2. import { SemesterConfiguration } from "./api/types/semesters/config";
  3. export type SemesterVersion = {
  4. semester: string;
  5. version: string | null;
  6. };
  7. export type NameModule = {
  8. name: string;
  9. modules: TaughtClass[];
  10. };
  11. export type NameModuleNumber = {
  12. name: number;
  13. modules: TaughtClass[];
  14. };
  15. export type CalendarEvent = {
  16. taughtClass: TaughtClass | null;
  17. personalEvent: PersonalEvent | null;
  18. topOffset: number;
  19. leftOffset: number;
  20. length: number;
  21. width: number;
  22. };
  23. export type StudienjahrgangAnmeldung = {
  24. studienjahrgangAnmeldungId: number;
  25. studienjahrgangId: number;
  26. studierendeId: number;
  27. statusId: number;
  28. statusName: string;
  29. anmeldungsDatum: string;
  30. hochschule: string;
  31. ausbildungsart: number;
  32. };
  33. export type ModulAnrechnung = {
  34. modulAnrechnungId: number;
  35. studierendeId: number;
  36. modulId: number;
  37. anrechnungEcts: number;
  38. };
  39. export type PauschalAnrechnung = {
  40. pauschalAnrechnungId: number;
  41. modulStandardGruppeId: number;
  42. studierendeId: number;
  43. studiengangId: number;
  44. anrechnungEcts: number;
  45. zeugnisText: string;
  46. };
  47. export type StudenthubStudent = {
  48. studierendeId: number | null;
  49. anrede: string | null;
  50. nachname: string | null;
  51. vorname: string | null;
  52. adresse1: string | null;
  53. adresse2: string | null;
  54. plz: string | null;
  55. ort: string | null;
  56. land: string | null;
  57. emailAdmin: string | null;
  58. emailEducation: string | null;
  59. emailPrivat: string | null;
  60. telefon: string | null;
  61. mobile: string | null;
  62. bild: string | null;
  63. geburtsdatum: string | null;
  64. beruf: string | null;
  65. studienjahrgangAnmeldungen: StudienjahrgangAnmeldung[] | null;
  66. modulAnrechnungen: ModulAnrechnung[] | null;
  67. pauschalAnrechnungen: PauschalAnrechnung[] | null;
  68. };
  69. export type Modulanlass = {
  70. modulanlassId: number;
  71. modulId: number;
  72. nummer: string;
  73. bezeichnung: string;
  74. statusId: number;
  75. statusName: string;
  76. hochschule: string;
  77. ausbildungsart: number;
  78. maxTeilnehmende: number;
  79. datumVon: string;
  80. datumBis: string;
  81. wochentag: null;
  82. zeitVon: null;
  83. zeitBis: null;
  84. anzahlAnmeldung: number;
  85. anlassleitungen: object[];
  86. };
  87. export type StudenthubAnmeldung = {
  88. modulanlassAnmeldungId: number | null;
  89. modulanlassId: number | null;
  90. studierendeId: number | null;
  91. statusId: number | null;
  92. statusName: string | null;
  93. freieNote: number | null;
  94. noteId: null | null;
  95. titelArbeit: null | null;
  96. text: string | null;
  97. anmeldungsDatum: string | null;
  98. hochschule: string | null;
  99. ausbildungsart: number | null;
  100. modulanlass: Modulanlass | null;
  101. bestanden: boolean | null;
  102. noteBezeichnung: string | null;
  103. };
  104. export type FilterRule = {
  105. column: ClassSelectorColumn;
  106. filterData: {
  107. term?: string;
  108. degree?: string;
  109. startTime?: number;
  110. endTime?: number;
  111. teachingType?: TeachingType | "";
  112. };
  113. pk: number;
  114. enabled: boolean;
  115. };
  116. export type PersonalEvent = {
  117. name: string;
  118. weekday: number;
  119. from: number;
  120. ects?: number;
  121. to: number;
  122. id: string;
  123. };
  124. export type PlanningDump = {
  125. modules: string[];
  126. version: string;
  127. name?: string;
  128. personalEvents?: PersonalEvent[];
  129. lastPlanRequestTimestamp?: number;
  130. oldPlanReminderTimestamp?: number;
  131. doNotRequestVersionUpgrade?: boolean;
  132. };
  133. export type PlanEntry = {
  134. name: string;
  135. planVersion: string;
  136. };
  137. export type ClassesVersion = {
  138. version: string;
  139. ready: Promise<null> | null;
  140. loaded: boolean;
  141. teachers: NameModule[];
  142. rooms: NameModule[];
  143. classes: NameModule[];
  144. days: NameModuleNumber[];
  145. taughtClasses: TaughtClass[];
  146. blockClasses: TaughtClass[];
  147. degreePrograms: string[];
  148. config: SemesterConfiguration;
  149. };
  150. export type ClassUpgradeDifference = {
  151. oldVersion: string;
  152. newVersion: string;
  153. removals: TaughtClass[];
  154. minorChanges: ClassUpgradeMinorDifferencesSet[];
  155. };
  156. export type ClassUpgradeMinorDifferencesSet = {
  157. name: string;
  158. changes: ClassUpgradeMinorDifferences[];
  159. };
  160. export type ClassUpgradeMinorDifferences = {
  161. difference: string;
  162. oldValue: string;
  163. newValue: string;
  164. };
  165. export enum Ordering {
  166. None = 0,
  167. Asc = 1,
  168. Desc = -1,
  169. }
  170. export enum TeachingType {
  171. OnSite = "on_site",
  172. Hybrid = "hybrid",
  173. Online = "online",
  174. Blockmodule = "blockmodule",
  175. }
  176. export enum ClassSelectorColumn {
  177. Module = "name",
  178. Time = "weekday",
  179. Class = "class",
  180. Lecturer = "lecturer",
  181. Room = "room",
  182. TeachingType = "teaching_type",
  183. MSP = "msp",
  184. Degree = "degree",
  185. }
  186. export enum ModuleLanguages {
  187. EN = "en",
  188. DE = "de",
  189. }
  190. export enum MainView {
  191. ModulePlanner = "ModulePlanner",
  192. DependencyTree = "DependencyTree",
  193. }
  194. export enum ColourScheme {
  195. Dark = "dark",
  196. Blinding = "blinding",
  197. }