@studious-lms/server 1.12.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/.dockerignore +28 -0
  2. package/.env.example +5 -0
  3. package/.github/workflows/deploy.yml +123 -0
  4. package/Dockerfile +54 -0
  5. package/dist/index.js +5 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/config/cors.d.ts.map +1 -1
  8. package/dist/lib/config/cors.js +31 -11
  9. package/dist/lib/config/cors.js.map +1 -1
  10. package/dist/lib/config/env.d.ts +17 -0
  11. package/dist/lib/config/env.d.ts.map +1 -1
  12. package/dist/lib/config/env.js +8 -2
  13. package/dist/lib/config/env.js.map +1 -1
  14. package/dist/lib/googleCloudStorage.d.ts +10 -0
  15. package/dist/lib/googleCloudStorage.d.ts.map +1 -1
  16. package/dist/lib/googleCloudStorage.js +22 -2
  17. package/dist/lib/googleCloudStorage.js.map +1 -1
  18. package/dist/lib/prisma.d.ts +104 -5
  19. package/dist/lib/prisma.d.ts.map +1 -1
  20. package/dist/lib/prisma.js +33 -2
  21. package/dist/lib/prisma.js.map +1 -1
  22. package/dist/models/agenda.d.ts +20 -20
  23. package/dist/models/announcement.d.ts +177 -69
  24. package/dist/models/announcement.d.ts.map +1 -1
  25. package/dist/models/assignment.d.ts +551 -353
  26. package/dist/models/assignment.d.ts.map +1 -1
  27. package/dist/models/attendance.d.ts +197 -71
  28. package/dist/models/attendance.d.ts.map +1 -1
  29. package/dist/models/auth.d.ts +348 -114
  30. package/dist/models/auth.d.ts.map +1 -1
  31. package/dist/models/class.d.ts +324 -188
  32. package/dist/models/class.d.ts.map +1 -1
  33. package/dist/models/class.js +9 -3
  34. package/dist/models/class.js.map +1 -1
  35. package/dist/models/cloudStorage.d.ts +146 -56
  36. package/dist/models/cloudStorage.d.ts.map +1 -1
  37. package/dist/models/comment.d.ts +269 -110
  38. package/dist/models/comment.d.ts.map +1 -1
  39. package/dist/models/comment.js +3 -2
  40. package/dist/models/comment.js.map +1 -1
  41. package/dist/models/conversation.d.ts +206 -63
  42. package/dist/models/conversation.d.ts.map +1 -1
  43. package/dist/models/conversation.js +13 -2
  44. package/dist/models/conversation.js.map +1 -1
  45. package/dist/models/department.d.ts +196 -70
  46. package/dist/models/department.d.ts.map +1 -1
  47. package/dist/models/event.d.ts +287 -125
  48. package/dist/models/event.d.ts.map +1 -1
  49. package/dist/models/file.d.ts +389 -263
  50. package/dist/models/file.d.ts.map +1 -1
  51. package/dist/models/folder.d.ts +433 -181
  52. package/dist/models/folder.d.ts.map +1 -1
  53. package/dist/models/labChat.d.ts +209 -83
  54. package/dist/models/labChat.d.ts.map +1 -1
  55. package/dist/models/marketing.d.ts +80 -26
  56. package/dist/models/marketing.d.ts.map +1 -1
  57. package/dist/models/message.d.ts +95 -41
  58. package/dist/models/message.d.ts.map +1 -1
  59. package/dist/models/newtonChat.d.ts +83 -29
  60. package/dist/models/newtonChat.d.ts.map +1 -1
  61. package/dist/models/notification.d.ts +61 -25
  62. package/dist/models/notification.d.ts.map +1 -1
  63. package/dist/models/school.d.ts +349 -133
  64. package/dist/models/school.d.ts.map +1 -1
  65. package/dist/models/section.d.ts +216 -72
  66. package/dist/models/section.d.ts.map +1 -1
  67. package/dist/models/tag.d.ts +156 -48
  68. package/dist/models/tag.d.ts.map +1 -1
  69. package/dist/models/user.d.ts +82 -28
  70. package/dist/models/user.d.ts.map +1 -1
  71. package/dist/models/worksheet.d.ts +1023 -410
  72. package/dist/models/worksheet.d.ts.map +1 -1
  73. package/dist/models/worksheet.js +19 -7
  74. package/dist/models/worksheet.js.map +1 -1
  75. package/dist/pipelines/aiLabChat.d.ts +0 -8
  76. package/dist/pipelines/aiLabChat.d.ts.map +1 -1
  77. package/dist/pipelines/aiLabChat.js +50 -67
  78. package/dist/pipelines/aiLabChat.js.map +1 -1
  79. package/dist/pipelines/aiLabChatContract.d.ts +393 -388
  80. package/dist/pipelines/aiLabChatContract.d.ts.map +1 -1
  81. package/dist/pipelines/aiLabChatContract.js +63 -69
  82. package/dist/pipelines/aiLabChatContract.js.map +1 -1
  83. package/dist/pipelines/aiNewtonChat.d.ts.map +1 -1
  84. package/dist/pipelines/aiNewtonChat.js +41 -41
  85. package/dist/pipelines/aiNewtonChat.js.map +1 -1
  86. package/dist/pipelines/gradeWorksheet.d.ts +8 -8
  87. package/dist/pipelines/gradeWorksheet.d.ts.map +1 -1
  88. package/dist/pipelines/gradeWorksheet.js +59 -14
  89. package/dist/pipelines/gradeWorksheet.js.map +1 -1
  90. package/dist/pipelines/labChatPrompt.d.ts +10 -8
  91. package/dist/pipelines/labChatPrompt.d.ts.map +1 -1
  92. package/dist/pipelines/labChatPrompt.js +47 -67
  93. package/dist/pipelines/labChatPrompt.js.map +1 -1
  94. package/dist/pipelines/pdfToWorksheet.d.ts +2 -2
  95. package/dist/routers/_app.d.ts +2268 -1898
  96. package/dist/routers/_app.d.ts.map +1 -1
  97. package/dist/routers/_app.js +4 -2
  98. package/dist/routers/_app.js.map +1 -1
  99. package/dist/routers/admin.d.ts +13 -13
  100. package/dist/routers/agenda.d.ts +18 -18
  101. package/dist/routers/announcement.d.ts +32 -28
  102. package/dist/routers/announcement.d.ts.map +1 -1
  103. package/dist/routers/announcement.js +6 -5
  104. package/dist/routers/announcement.js.map +1 -1
  105. package/dist/routers/assignment.d.ts +335 -327
  106. package/dist/routers/assignment.d.ts.map +1 -1
  107. package/dist/routers/assignment.js +4 -4
  108. package/dist/routers/assignment.js.map +1 -1
  109. package/dist/routers/attendance.d.ts +10 -10
  110. package/dist/routers/auth.d.ts +2 -2
  111. package/dist/routers/class.d.ts +170 -147
  112. package/dist/routers/class.d.ts.map +1 -1
  113. package/dist/routers/comment.d.ts +40 -16
  114. package/dist/routers/comment.d.ts.map +1 -1
  115. package/dist/routers/comment.js +6 -3
  116. package/dist/routers/comment.js.map +1 -1
  117. package/dist/routers/conversation.d.ts +17 -17
  118. package/dist/routers/department.d.ts +34 -34
  119. package/dist/routers/discussion.d.ts +65 -53
  120. package/dist/routers/discussion.d.ts.map +1 -1
  121. package/dist/routers/discussion.js +6 -2
  122. package/dist/routers/discussion.js.map +1 -1
  123. package/dist/routers/embedding.d.ts +69 -0
  124. package/dist/routers/embedding.d.ts.map +1 -0
  125. package/dist/routers/embedding.js +143 -0
  126. package/dist/routers/embedding.js.map +1 -0
  127. package/dist/routers/event.d.ts +39 -39
  128. package/dist/routers/file.d.ts +12 -12
  129. package/dist/routers/folder.d.ts +38 -38
  130. package/dist/routers/labChat.d.ts +19 -19
  131. package/dist/routers/marketing.d.ts +2 -2
  132. package/dist/routers/message.d.ts +13 -13
  133. package/dist/routers/newtonChat.d.ts +4 -4
  134. package/dist/routers/notifications.d.ts +9 -9
  135. package/dist/routers/permissions.d.ts +14 -14
  136. package/dist/routers/school.d.ts +55 -55
  137. package/dist/routers/search.d.ts +22 -1
  138. package/dist/routers/search.d.ts.map +1 -1
  139. package/dist/routers/search.js +9 -3
  140. package/dist/routers/search.js.map +1 -1
  141. package/dist/routers/section.d.ts +4 -4
  142. package/dist/routers/studentProgress.d.ts +1 -1
  143. package/dist/routers/tag.d.ts +7 -7
  144. package/dist/routers/user.d.ts +10 -10
  145. package/dist/routers/worksheet.d.ts +97 -56
  146. package/dist/routers/worksheet.d.ts.map +1 -1
  147. package/dist/routers/worksheet.js +28 -2
  148. package/dist/routers/worksheet.js.map +1 -1
  149. package/dist/routes/aiStream.d.ts +2 -0
  150. package/dist/routes/aiStream.d.ts.map +1 -0
  151. package/dist/routes/aiStream.js +696 -0
  152. package/dist/routes/aiStream.js.map +1 -0
  153. package/dist/seedDatabase.d.ts +2 -2
  154. package/dist/seedDatabase.js +6 -6
  155. package/dist/seedDatabase.js.map +1 -1
  156. package/dist/services/adminInstitution.d.ts +8 -8
  157. package/dist/services/adminRunJob.d.ts +4 -4
  158. package/dist/services/agenda.d.ts +18 -18
  159. package/dist/services/aiChatStream.d.ts +68 -0
  160. package/dist/services/aiChatStream.d.ts.map +1 -0
  161. package/dist/services/aiChatStream.js +157 -0
  162. package/dist/services/aiChatStream.js.map +1 -0
  163. package/dist/services/aiModifierTools.d.ts +32 -0
  164. package/dist/services/aiModifierTools.d.ts.map +1 -0
  165. package/dist/services/aiModifierTools.js +165 -0
  166. package/dist/services/aiModifierTools.js.map +1 -0
  167. package/dist/services/aiProposalTools.d.ts +32 -0
  168. package/dist/services/aiProposalTools.d.ts.map +1 -0
  169. package/dist/services/aiProposalTools.js +207 -0
  170. package/dist/services/aiProposalTools.js.map +1 -0
  171. package/dist/services/aiStream.d.ts +22 -0
  172. package/dist/services/aiStream.d.ts.map +1 -0
  173. package/dist/services/aiStream.js +142 -0
  174. package/dist/services/aiStream.js.map +1 -0
  175. package/dist/services/aiTools.d.ts +16 -0
  176. package/dist/services/aiTools.d.ts.map +1 -0
  177. package/dist/services/aiTools.js +271 -0
  178. package/dist/services/aiTools.js.map +1 -0
  179. package/dist/services/announcement.d.ts +12 -12
  180. package/dist/services/announcement.d.ts.map +1 -1
  181. package/dist/services/announcement.js +7 -2
  182. package/dist/services/announcement.js.map +1 -1
  183. package/dist/services/assignment.d.ts +293 -293
  184. package/dist/services/assignment.d.ts.map +1 -1
  185. package/dist/services/assignment.js +36 -15
  186. package/dist/services/assignment.js.map +1 -1
  187. package/dist/services/attendance.d.ts +10 -10
  188. package/dist/services/auth.d.ts +2 -2
  189. package/dist/services/class.d.ts +161 -138
  190. package/dist/services/class.d.ts.map +1 -1
  191. package/dist/services/class.js +25 -4
  192. package/dist/services/class.js.map +1 -1
  193. package/dist/services/comment.d.ts +34 -16
  194. package/dist/services/comment.d.ts.map +1 -1
  195. package/dist/services/comment.js +23 -2
  196. package/dist/services/comment.js.map +1 -1
  197. package/dist/services/conversation.d.ts +17 -17
  198. package/dist/services/conversation.d.ts.map +1 -1
  199. package/dist/services/conversation.js +9 -7
  200. package/dist/services/conversation.js.map +1 -1
  201. package/dist/services/department.d.ts +33 -33
  202. package/dist/services/discussion.d.ts +58 -58
  203. package/dist/services/discussion.d.ts.map +1 -1
  204. package/dist/services/discussion.js +8 -8
  205. package/dist/services/discussion.js.map +1 -1
  206. package/dist/services/discussionSummary.d.ts +21 -0
  207. package/dist/services/discussionSummary.d.ts.map +1 -0
  208. package/dist/services/discussionSummary.js +179 -0
  209. package/dist/services/discussionSummary.js.map +1 -0
  210. package/dist/services/embedding.d.ts +67 -0
  211. package/dist/services/embedding.d.ts.map +1 -0
  212. package/dist/services/embedding.js +226 -0
  213. package/dist/services/embedding.js.map +1 -0
  214. package/dist/services/event.d.ts +37 -37
  215. package/dist/services/file.d.ts +24 -24
  216. package/dist/services/folder.d.ts +36 -36
  217. package/dist/services/labChat.d.ts +19 -19
  218. package/dist/services/marketing.d.ts +2 -2
  219. package/dist/services/message.d.ts +11 -11
  220. package/dist/services/message.d.ts.map +1 -1
  221. package/dist/services/message.js +2 -2
  222. package/dist/services/message.js.map +1 -1
  223. package/dist/services/newtonChat.d.ts +4 -4
  224. package/dist/services/notification.d.ts +9 -9
  225. package/dist/services/notification.d.ts.map +1 -1
  226. package/dist/services/permissions.d.ts +14 -14
  227. package/dist/services/school.d.ts +50 -50
  228. package/dist/services/search.d.ts +12 -0
  229. package/dist/services/search.d.ts.map +1 -1
  230. package/dist/services/search.js +120 -2
  231. package/dist/services/search.js.map +1 -1
  232. package/dist/services/section.d.ts +3 -3
  233. package/dist/services/tag.d.ts +4 -4
  234. package/dist/services/user.d.ts +4 -4
  235. package/dist/services/user.d.ts.map +1 -1
  236. package/dist/services/user.js +10 -15
  237. package/dist/services/user.js.map +1 -1
  238. package/dist/services/worksheet.d.ts +62 -47
  239. package/dist/services/worksheet.d.ts.map +1 -1
  240. package/dist/services/worksheet.js +11 -4
  241. package/dist/services/worksheet.js.map +1 -1
  242. package/dist/utils/streamBroadcast.d.ts +11 -0
  243. package/dist/utils/streamBroadcast.d.ts.map +1 -0
  244. package/dist/utils/streamBroadcast.js +32 -0
  245. package/dist/utils/streamBroadcast.js.map +1 -0
  246. package/dist/workers/connection.d.ts +15 -0
  247. package/dist/workers/connection.d.ts.map +1 -1
  248. package/dist/workers/connection.js +20 -2
  249. package/dist/workers/connection.js.map +1 -1
  250. package/dist/workers/index.js +4 -2
  251. package/dist/workers/index.js.map +1 -1
  252. package/dist/workers/processors/createRunJobWorker.d.ts.map +1 -1
  253. package/dist/workers/processors/createRunJobWorker.js +31 -8
  254. package/dist/workers/processors/createRunJobWorker.js.map +1 -1
  255. package/dist/workers/processors/embedContent.d.ts +8 -0
  256. package/dist/workers/processors/embedContent.d.ts.map +1 -0
  257. package/dist/workers/processors/embedContent.js +76 -0
  258. package/dist/workers/processors/embedContent.js.map +1 -0
  259. package/dist/workers/queues.d.ts +6 -0
  260. package/dist/workers/queues.d.ts.map +1 -1
  261. package/dist/workers/queues.js +5 -3
  262. package/dist/workers/queues.js.map +1 -1
  263. package/package.json +5 -1
  264. package/prisma/migrations/20260609215135_init/migration.sql +1412 -0
  265. package/prisma/migrations/20260610130000_add_worksheet_tags/migration.sql +13 -0
  266. package/prisma/schema.prisma +39 -7
  267. package/src/index.ts +4 -0
  268. package/src/lib/config/cors.ts +32 -9
  269. package/src/lib/config/env.ts +6 -0
  270. package/src/lib/googleCloudStorage.ts +21 -0
  271. package/src/lib/prisma.ts +40 -1
  272. package/src/models/class.ts +10 -3
  273. package/src/models/comment.ts +1 -0
  274. package/src/models/conversation.ts +12 -0
  275. package/src/models/worksheet.ts +16 -7
  276. package/src/pipelines/aiLabChat.ts +54 -79
  277. package/src/pipelines/aiLabChatContract.ts +69 -69
  278. package/src/pipelines/aiNewtonChat.ts +46 -43
  279. package/src/pipelines/gradeWorksheet.ts +66 -15
  280. package/src/pipelines/labChatPrompt.ts +63 -88
  281. package/src/routers/_app.ts +2 -0
  282. package/src/routers/announcement.ts +4 -3
  283. package/src/routers/assignment.ts +2 -2
  284. package/src/routers/comment.ts +5 -0
  285. package/src/routers/discussion.ts +7 -0
  286. package/src/routers/embedding.ts +159 -0
  287. package/src/routers/search.ts +10 -1
  288. package/src/routers/worksheet.ts +29 -0
  289. package/src/routes/aiStream.ts +789 -0
  290. package/src/seedDatabase.ts +4 -4
  291. package/src/services/aiChatStream.ts +219 -0
  292. package/src/services/aiModifierTools.ts +188 -0
  293. package/src/services/aiProposalTools.ts +272 -0
  294. package/src/services/aiStream.ts +175 -0
  295. package/src/services/aiTools.ts +290 -0
  296. package/src/services/announcement.ts +7 -0
  297. package/src/services/assignment.ts +36 -14
  298. package/src/services/class.ts +30 -2
  299. package/src/services/comment.ts +22 -0
  300. package/src/services/conversation.ts +9 -4
  301. package/src/services/discussion.ts +9 -8
  302. package/src/services/discussionSummary.ts +226 -0
  303. package/src/services/embedding.ts +285 -0
  304. package/src/services/message.ts +2 -2
  305. package/src/services/search.ts +138 -0
  306. package/src/services/user.ts +9 -17
  307. package/src/services/worksheet.ts +10 -2
  308. package/src/utils/streamBroadcast.ts +48 -0
  309. package/src/workers/connection.ts +19 -0
  310. package/src/workers/index.ts +2 -0
  311. package/src/workers/processors/createRunJobWorker.ts +32 -6
  312. package/src/workers/processors/embedContent.ts +90 -0
  313. package/src/workers/queues.ts +5 -1
  314. package/tests/integration/routers/conversation.test.ts +9 -7
  315. package/tests/unit/pipelines/aiLabChatContract.test.ts +38 -21
  316. package/tests/unit/pipelines/labChatPrompt.test.ts +23 -36
  317. package/prisma/migrations/20250807062924_init/migration.sql +0 -436
  318. package/prisma/migrations/20250919063704_init2/migration.sql +0 -24
  319. package/prisma/migrations/20250920143543_add_profile_fields/migration.sql +0 -15
  320. package/prisma/migrations/20250922165147_add_chat_models/migration.sql +0 -68
  321. package/prisma/migrations/20250922165314_add_chat_roles/migration.sql +0 -5
  322. package/prisma/migrations/20250922171242_refactor_notification_system/migration.sql +0 -20
  323. package/prisma/migrations/20250922172208_add_mentions_system/migration.sql +0 -21
  324. package/prisma/migrations/20250925072732_add_lab_chat_system/migration.sql +0 -25
  325. package/prisma/migrations/20251020151505_add_upload_tracking_fields/migration.sql +0 -57
  326. package/prisma/migrations/20251109122857_annuoncements_comments/migration.sql +0 -30
  327. package/prisma/migrations/20251109135555_reactions_announcements_comments/migration.sql +0 -35
  328. package/prisma/migrations/20260410124000_add_submission_recommendation_state/migration.sql +0 -14
  329. package/prisma/migrations/20260415103500_add_session_type/migration.sql +0 -33
  330. package/prisma/migrations/20260415133000_add_ai_usage_logs/migration.sql +0 -19
  331. package/prisma/migrations/20260417083000_add_conversation_member_hidden_at/migration.sql +0 -2
  332. package/prisma/migrations/20260502230500_assignment_submission_comments/migration.sql +0 -60
  333. package/prisma/migrations/20260504071500_school_memberships/migration.sql +0 -81
  334. package/prisma/migrations/20260506162500_consolidate_run_job_and_unify_job_status/migration.sql +0 -166
  335. package/prisma/migrations/20260509220000_institution_overhaul/migration.sql +0 -184
  336. package/prisma/migrations/20260510170000_add_folder_permissions/migration.sql +0 -93
  337. package/prisma/migrations/20260510183000_add_discussions/migration.sql +0 -151
  338. /package/.github/workflows/{npm.yml → npm-publish.yml} +0 -0
@@ -27,12 +27,22 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
27
27
  dueToday: {
28
28
  type: import(".prisma/client").$Enums.AssignmentType;
29
29
  id: string;
30
+ submissions: {
31
+ studentId: string;
32
+ submitted: boolean | null;
33
+ returned: boolean | null;
34
+ }[];
30
35
  title: string;
31
36
  dueDate: Date;
32
37
  }[];
33
38
  assignments: {
34
39
  type: import(".prisma/client").$Enums.AssignmentType;
35
40
  id: string;
41
+ submissions: {
42
+ studentId: string;
43
+ submitted: boolean | null;
44
+ returned: boolean | null;
45
+ }[];
36
46
  title: string;
37
47
  dueDate: Date;
38
48
  }[];
@@ -40,20 +50,20 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
40
50
  id: string;
41
51
  username: string;
42
52
  profile: {
43
- displayName: string | null;
44
53
  profilePicture: string | null;
54
+ displayName: string | null;
45
55
  profilePictureThumbnail: string | null;
46
56
  } | null;
47
57
  }[];
48
58
  color: string | null;
49
59
  schoolId: string | null;
50
60
  school: {
51
- name: string;
52
61
  id: string;
62
+ name: string;
53
63
  } | null;
54
64
  department: {
55
- name: string;
56
65
  id: string;
66
+ name: string;
57
67
  color: string | null;
58
68
  } | null;
59
69
  discussionsEnabled: boolean;
@@ -68,12 +78,25 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
68
78
  dueToday: {
69
79
  type: import(".prisma/client").$Enums.AssignmentType;
70
80
  id: string;
81
+ submissions: {
82
+ studentId: string;
83
+ submitted: boolean | null;
84
+ returned: boolean | null;
85
+ }[];
71
86
  title: string;
72
87
  dueDate: Date;
73
88
  }[];
74
89
  assignments: {
90
+ late: boolean;
91
+ submitted: boolean;
92
+ returned: boolean;
75
93
  type: import(".prisma/client").$Enums.AssignmentType;
76
94
  id: string;
95
+ submissions: {
96
+ studentId: string;
97
+ submitted: boolean | null;
98
+ returned: boolean | null;
99
+ }[];
77
100
  title: string;
78
101
  dueDate: Date;
79
102
  }[];
@@ -81,20 +104,20 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
81
104
  id: string;
82
105
  username: string;
83
106
  profile: {
84
- displayName: string | null;
85
107
  profilePicture: string | null;
108
+ displayName: string | null;
86
109
  profilePictureThumbnail: string | null;
87
110
  } | null;
88
111
  }[];
89
112
  color: string | null;
90
113
  schoolId: string | null;
91
114
  school: {
92
- name: string;
93
115
  id: string;
116
+ name: string;
94
117
  } | null;
95
118
  department: {
96
- name: string;
97
119
  id: string;
120
+ name: string;
98
121
  color: string | null;
99
122
  } | null;
100
123
  discussionsEnabled: boolean;
@@ -112,16 +135,16 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
112
135
  output: {
113
136
  class: {
114
137
  sections: {
115
- name: string;
116
138
  id: string;
139
+ name: string;
117
140
  color: string | null;
118
141
  classId: string;
119
142
  order: number | null;
120
143
  }[];
121
144
  affiliation: {
122
145
  school: {
123
- name: string;
124
146
  id: string;
147
+ name: string;
125
148
  description: string | null;
126
149
  logo: {
127
150
  path: string;
@@ -130,14 +153,14 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
130
153
  } | null;
131
154
  } | null;
132
155
  department: {
133
- name: string;
134
156
  id: string;
157
+ name: string;
135
158
  description: string | null;
136
159
  color: string | null;
137
160
  } | null;
138
161
  tags: {
139
- name: string;
140
162
  id: string;
163
+ name: string;
141
164
  color: string;
142
165
  departmentId: string | null;
143
166
  }[];
@@ -147,12 +170,20 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
147
170
  submitted: boolean | null | undefined;
148
171
  returned: boolean | null | undefined;
149
172
  type: import(".prisma/client").$Enums.AssignmentType;
150
- id: string;
151
- createdAt: Date | null;
173
+ markScheme: {
174
+ id: string;
175
+ structured: string;
176
+ } | null;
177
+ gradingBoundary: {
178
+ id: string;
179
+ structured: string;
180
+ } | null;
152
181
  section: {
153
- name: string;
154
182
  id: string;
183
+ name: string;
155
184
  } | null;
185
+ id: string;
186
+ createdAt: Date | null;
156
187
  submissions: {
157
188
  id: string;
158
189
  studentId: string;
@@ -164,43 +195,20 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
164
195
  returned: boolean | null;
165
196
  }[];
166
197
  title: string;
167
- instructions: string;
168
198
  dueDate: Date;
169
- graded: boolean;
170
199
  maxGrade: number | null;
200
+ instructions: string;
201
+ graded: boolean;
171
202
  weight: number;
172
203
  inProgress: boolean;
173
204
  order: number | null;
174
- markScheme: {
175
- id: string;
176
- structured: string;
177
- } | null;
178
- gradingBoundary: {
179
- id: string;
180
- structured: string;
181
- } | null;
182
- }[];
183
- announcements: {
184
- id: string;
185
- createdAt: Date;
186
- modifiedAt: Date | null;
187
- remarks: string;
188
- teacher: {
189
- id: string;
190
- username: string;
191
- profile: {
192
- displayName: string | null;
193
- profilePicture: string | null;
194
- profilePictureThumbnail: string | null;
195
- } | null;
196
- };
197
205
  }[];
198
206
  teachers: {
199
207
  id: string;
200
208
  username: string;
201
209
  profile: {
202
- displayName: string | null;
203
210
  profilePicture: string | null;
211
+ displayName: string | null;
204
212
  profilePictureThumbnail: string | null;
205
213
  } | null;
206
214
  }[];
@@ -208,17 +216,32 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
208
216
  id: string;
209
217
  username: string;
210
218
  profile: {
211
- displayName: string | null;
212
219
  profilePicture: string | null;
220
+ displayName: string | null;
213
221
  profilePictureThumbnail: string | null;
214
222
  } | null;
215
223
  }[];
216
- name: string;
224
+ announcements: {
225
+ id: string;
226
+ createdAt: Date;
227
+ remarks: string;
228
+ modifiedAt: Date | null;
229
+ teacher: {
230
+ id: string;
231
+ username: string;
232
+ profile: {
233
+ profilePicture: string | null;
234
+ displayName: string | null;
235
+ profilePictureThumbnail: string | null;
236
+ } | null;
237
+ };
238
+ }[];
239
+ section: string;
217
240
  id: string;
241
+ name: string;
218
242
  schoolId: string | null;
219
- subject: string;
220
243
  color: string | null;
221
- section: string;
244
+ subject: string;
222
245
  syllabus: string | null;
223
246
  departmentId: string | null;
224
247
  discussionsEnabled: boolean;
@@ -232,10 +255,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
232
255
  input: {
233
256
  [x: string]: unknown;
234
257
  classId: string;
258
+ section?: string | undefined;
235
259
  name?: string | undefined;
236
- subject?: string | undefined;
237
260
  color?: string | undefined;
238
- section?: string | undefined;
261
+ subject?: string | undefined;
239
262
  departmentId?: string | null | undefined;
240
263
  discussionsEnabled?: boolean | undefined;
241
264
  studentsCanCreateDiscussions?: boolean | undefined;
@@ -243,11 +266,11 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
243
266
  };
244
267
  output: {
245
268
  updatedClass: {
246
- name: string;
269
+ section: string;
247
270
  id: string;
248
- subject: string;
271
+ name: string;
249
272
  color: string | null;
250
- section: string;
273
+ subject: string;
251
274
  departmentId: string | null;
252
275
  discussionsEnabled: boolean;
253
276
  studentsCanCreateDiscussions: boolean;
@@ -258,14 +281,14 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
258
281
  }>;
259
282
  create: import("@trpc/server").TRPCMutationProcedure<{
260
283
  input: {
284
+ section: string;
261
285
  name: string;
262
286
  subject: string;
263
- section: string;
287
+ teachers?: string[] | undefined;
288
+ students?: string[] | undefined;
264
289
  schoolId?: string | undefined;
265
290
  color?: string | undefined;
266
291
  departmentId?: string | undefined;
267
- teachers?: string[] | undefined;
268
- students?: string[] | undefined;
269
292
  };
270
293
  output: {
271
294
  teachers: {
@@ -285,12 +308,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
285
308
  schoolId: string | null;
286
309
  }[];
287
310
  } & {
288
- name: string;
311
+ section: string;
289
312
  id: string;
313
+ name: string;
290
314
  schoolId: string | null;
291
- subject: string;
292
315
  color: string | null;
293
- section: string;
316
+ subject: string;
294
317
  syllabus: string | null;
295
318
  departmentId: string | null;
296
319
  discussionsEnabled: boolean;
@@ -320,10 +343,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
320
343
  };
321
344
  output: {
322
345
  updatedClass: {
323
- name: string;
346
+ section: string;
324
347
  id: string;
348
+ name: string;
325
349
  subject: string;
326
- section: string;
327
350
  };
328
351
  newStudent: {
329
352
  id: string;
@@ -341,12 +364,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
341
364
  };
342
365
  output: {
343
366
  updatedClass: {
344
- name: string;
367
+ section: string;
345
368
  id: string;
369
+ name: string;
346
370
  schoolId: string | null;
347
- subject: string;
348
371
  color: string | null;
349
- section: string;
372
+ subject: string;
350
373
  syllabus: string | null;
351
374
  departmentId: string | null;
352
375
  discussionsEnabled: boolean;
@@ -369,12 +392,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
369
392
  };
370
393
  output: {
371
394
  updatedClass: {
372
- name: string;
395
+ section: string;
373
396
  id: string;
397
+ name: string;
374
398
  schoolId: string | null;
375
- subject: string;
376
399
  color: string | null;
377
- section: string;
400
+ subject: string;
378
401
  syllabus: string | null;
379
402
  departmentId: string | null;
380
403
  discussionsEnabled: boolean;
@@ -401,10 +424,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
401
424
  };
402
425
  output: {
403
426
  joinedClass: {
404
- name: string;
427
+ section: string;
405
428
  id: string;
429
+ name: string;
406
430
  subject: string;
407
- section: string;
408
431
  };
409
432
  };
410
433
  meta: object;
@@ -438,6 +461,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
438
461
  output: {
439
462
  grades: ({
440
463
  assignment: {
464
+ markScheme: {
465
+ structured: string;
466
+ } | null;
467
+ gradingBoundary: {
468
+ structured: string;
469
+ } | null;
441
470
  id: string;
442
471
  title: string;
443
472
  dueDate: Date;
@@ -445,12 +474,6 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
445
474
  weight: number;
446
475
  markSchemeId: string | null;
447
476
  gradingBoundaryId: string | null;
448
- markScheme: {
449
- structured: string;
450
- } | null;
451
- gradingBoundary: {
452
- structured: string;
453
- } | null;
454
477
  };
455
478
  } & {
456
479
  id: string;
@@ -525,10 +548,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
525
548
  classId: string;
526
549
  };
527
550
  output: {
528
- name: string | null;
529
551
  id: string;
530
- departmentId: string | null;
552
+ name: string | null;
531
553
  classId: string | null;
554
+ departmentId: string | null;
532
555
  structured: string;
533
556
  }[];
534
557
  meta: object;
@@ -540,10 +563,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
540
563
  structure: string;
541
564
  };
542
565
  output: {
543
- name: string | null;
544
566
  id: string;
545
- departmentId: string | null;
567
+ name: string | null;
546
568
  classId: string | null;
569
+ departmentId: string | null;
547
570
  structured: string;
548
571
  };
549
572
  meta: object;
@@ -556,10 +579,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
556
579
  structure: string;
557
580
  };
558
581
  output: {
559
- name: string | null;
560
582
  id: string;
561
- departmentId: string | null;
583
+ name: string | null;
562
584
  classId: string | null;
585
+ departmentId: string | null;
563
586
  structured: string;
564
587
  };
565
588
  meta: object;
@@ -571,10 +594,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
571
594
  markSchemeId: string;
572
595
  };
573
596
  output: {
574
- name: string | null;
575
597
  id: string;
576
- departmentId: string | null;
598
+ name: string | null;
577
599
  classId: string | null;
600
+ departmentId: string | null;
578
601
  structured: string;
579
602
  };
580
603
  meta: object;
@@ -585,10 +608,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
585
608
  classId: string;
586
609
  };
587
610
  output: {
588
- name: string | null;
589
611
  id: string;
590
- departmentId: string | null;
612
+ name: string | null;
591
613
  classId: string | null;
614
+ departmentId: string | null;
592
615
  structured: string;
593
616
  }[];
594
617
  meta: object;
@@ -600,10 +623,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
600
623
  structure: string;
601
624
  };
602
625
  output: {
603
- name: string | null;
604
626
  id: string;
605
- departmentId: string | null;
627
+ name: string | null;
606
628
  classId: string | null;
629
+ departmentId: string | null;
607
630
  structured: string;
608
631
  };
609
632
  meta: object;
@@ -616,10 +639,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
616
639
  structure: string;
617
640
  };
618
641
  output: {
619
- name: string | null;
620
642
  id: string;
621
- departmentId: string | null;
643
+ name: string | null;
622
644
  classId: string | null;
645
+ departmentId: string | null;
623
646
  structured: string;
624
647
  };
625
648
  meta: object;
@@ -631,10 +654,10 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
631
654
  gradingBoundaryId: string;
632
655
  };
633
656
  output: {
634
- name: string | null;
635
657
  id: string;
636
- departmentId: string | null;
658
+ name: string | null;
637
659
  classId: string | null;
660
+ departmentId: string | null;
638
661
  structured: string;
639
662
  };
640
663
  meta: object;
@@ -647,17 +670,17 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
647
670
  output: {
648
671
  syllabus: string | null | undefined;
649
672
  gradingBoundaries: {
650
- name: string | null;
651
673
  id: string;
652
- departmentId: string | null;
674
+ name: string | null;
653
675
  classId: string | null;
676
+ departmentId: string | null;
654
677
  structured: string;
655
678
  }[];
656
679
  markSchemes: {
657
- name: string | null;
658
680
  id: string;
659
- departmentId: string | null;
681
+ name: string | null;
660
682
  classId: string | null;
683
+ departmentId: string | null;
661
684
  structured: string;
662
685
  }[];
663
686
  };
@@ -670,12 +693,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
670
693
  contents: string;
671
694
  };
672
695
  output: {
673
- name: string;
696
+ section: string;
674
697
  id: string;
698
+ name: string;
675
699
  schoolId: string | null;
676
- subject: string;
677
700
  color: string | null;
678
- section: string;
701
+ subject: string;
679
702
  syllabus: string | null;
680
703
  departmentId: string | null;
681
704
  discussionsEnabled: boolean;
@@ -694,10 +717,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
694
717
  id: string;
695
718
  createdAt: Date | null;
696
719
  classId: string;
697
- modifiedAt: Date | null;
698
720
  title: string;
699
- instructions: string;
700
721
  dueDate: Date;
722
+ maxGrade: number | null;
723
+ eventId: string | null;
724
+ instructions: string;
725
+ modifiedAt: Date | null;
701
726
  teacherId: string;
702
727
  acceptFiles: boolean;
703
728
  acceptExtendedResponse: boolean;
@@ -706,11 +731,9 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
706
731
  aiPolicyLevel: number;
707
732
  sectionId: string | null;
708
733
  graded: boolean;
709
- maxGrade: number | null;
710
734
  weight: number;
711
735
  inProgress: boolean;
712
736
  template: boolean;
713
- eventId: string | null;
714
737
  markSchemeId: string | null;
715
738
  order: number | null;
716
739
  gradingBoundaryId: string | null;
@@ -725,9 +748,9 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
725
748
  title: string;
726
749
  instructions: string;
727
750
  dueDate?: Date | undefined;
751
+ maxGrade?: number | undefined;
728
752
  sectionId?: string | undefined;
729
753
  graded?: boolean | undefined;
730
- maxGrade?: number | undefined;
731
754
  weight?: number | undefined;
732
755
  markSchemeId?: string | undefined;
733
756
  gradingBoundaryId?: string | undefined;
@@ -737,10 +760,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
737
760
  id: string;
738
761
  createdAt: Date | null;
739
762
  classId: string;
740
- modifiedAt: Date | null;
741
763
  title: string;
742
- instructions: string;
743
764
  dueDate: Date;
765
+ maxGrade: number | null;
766
+ eventId: string | null;
767
+ instructions: string;
768
+ modifiedAt: Date | null;
744
769
  teacherId: string;
745
770
  acceptFiles: boolean;
746
771
  acceptExtendedResponse: boolean;
@@ -749,11 +774,9 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
749
774
  aiPolicyLevel: number;
750
775
  sectionId: string | null;
751
776
  graded: boolean;
752
- maxGrade: number | null;
753
777
  weight: number;
754
778
  inProgress: boolean;
755
779
  template: boolean;
756
- eventId: string | null;
757
780
  markSchemeId: string | null;
758
781
  order: number | null;
759
782
  gradingBoundaryId: string | null;
@@ -766,11 +789,11 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
766
789
  classId: string;
767
790
  draftId: string;
768
791
  title?: string | undefined;
769
- instructions?: string | undefined;
770
792
  dueDate?: Date | undefined;
793
+ maxGrade?: number | undefined;
794
+ instructions?: string | undefined;
771
795
  sectionId?: string | undefined;
772
796
  graded?: boolean | undefined;
773
- maxGrade?: number | undefined;
774
797
  weight?: number | undefined;
775
798
  markSchemeId?: string | undefined;
776
799
  gradingBoundaryId?: string | undefined;
@@ -780,10 +803,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
780
803
  id: string;
781
804
  createdAt: Date | null;
782
805
  classId: string;
783
- modifiedAt: Date | null;
784
806
  title: string;
785
- instructions: string;
786
807
  dueDate: Date;
808
+ maxGrade: number | null;
809
+ eventId: string | null;
810
+ instructions: string;
811
+ modifiedAt: Date | null;
787
812
  teacherId: string;
788
813
  acceptFiles: boolean;
789
814
  acceptExtendedResponse: boolean;
@@ -792,11 +817,9 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
792
817
  aiPolicyLevel: number;
793
818
  sectionId: string | null;
794
819
  graded: boolean;
795
- maxGrade: number | null;
796
820
  weight: number;
797
821
  inProgress: boolean;
798
822
  template: boolean;
799
- eventId: string | null;
800
823
  markSchemeId: string | null;
801
824
  order: number | null;
802
825
  gradingBoundaryId: string | null;
@@ -814,10 +837,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
814
837
  id: string;
815
838
  createdAt: Date | null;
816
839
  classId: string;
817
- modifiedAt: Date | null;
818
840
  title: string;
819
- instructions: string;
820
841
  dueDate: Date;
842
+ maxGrade: number | null;
843
+ eventId: string | null;
844
+ instructions: string;
845
+ modifiedAt: Date | null;
821
846
  teacherId: string;
822
847
  acceptFiles: boolean;
823
848
  acceptExtendedResponse: boolean;
@@ -826,11 +851,9 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
826
851
  aiPolicyLevel: number;
827
852
  sectionId: string | null;
828
853
  graded: boolean;
829
- maxGrade: number | null;
830
854
  weight: number;
831
855
  inProgress: boolean;
832
856
  template: boolean;
833
- eventId: string | null;
834
857
  markSchemeId: string | null;
835
858
  order: number | null;
836
859
  gradingBoundaryId: string | null;
@@ -843,8 +866,8 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
843
866
  classId: string;
844
867
  draftId: string;
845
868
  dueDate?: Date | undefined;
846
- graded?: boolean | undefined;
847
869
  maxGrade?: number | undefined;
870
+ graded?: boolean | undefined;
848
871
  weight?: number | undefined;
849
872
  };
850
873
  output: {
@@ -852,10 +875,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
852
875
  id: string;
853
876
  createdAt: Date | null;
854
877
  classId: string;
855
- modifiedAt: Date | null;
856
878
  title: string;
857
- instructions: string;
858
879
  dueDate: Date;
880
+ maxGrade: number | null;
881
+ eventId: string | null;
882
+ instructions: string;
883
+ modifiedAt: Date | null;
859
884
  teacherId: string;
860
885
  acceptFiles: boolean;
861
886
  acceptExtendedResponse: boolean;
@@ -864,11 +889,9 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
864
889
  aiPolicyLevel: number;
865
890
  sectionId: string | null;
866
891
  graded: boolean;
867
- maxGrade: number | null;
868
892
  weight: number;
869
893
  inProgress: boolean;
870
894
  template: boolean;
871
- eventId: string | null;
872
895
  markSchemeId: string | null;
873
896
  order: number | null;
874
897
  gradingBoundaryId: string | null;
@@ -890,12 +913,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
890
913
  teacherAttachments: {
891
914
  path: string;
892
915
  type: string;
893
- name: string;
894
- id: string;
895
916
  user: {
896
917
  id: string;
897
918
  username: string;
898
919
  } | null;
920
+ id: string;
921
+ name: string;
899
922
  size: number | null;
900
923
  uploadedAt: Date | null;
901
924
  thumbnailId: string | null;
@@ -906,12 +929,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
906
929
  attachments: {
907
930
  path: string;
908
931
  type: string;
909
- name: string;
910
- id: string;
911
932
  user: {
912
933
  id: string;
913
934
  username: string;
914
935
  } | null;
936
+ id: string;
937
+ name: string;
915
938
  size: number | null;
916
939
  uploadedAt: Date | null;
917
940
  thumbnailId: string | null;
@@ -919,12 +942,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
919
942
  annotations: {
920
943
  path: string;
921
944
  type: string;
922
- name: string;
923
- id: string;
924
945
  user: {
925
946
  id: string;
926
947
  username: string;
927
948
  } | null;
949
+ id: string;
950
+ name: string;
928
951
  size: number | null;
929
952
  uploadedAt: Date | null;
930
953
  thumbnailId: string | null;
@@ -942,16 +965,29 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
942
965
  classFiles: any;
943
966
  assignments: {
944
967
  type: import(".prisma/client").$Enums.AssignmentType;
945
- id: string;
946
- createdAt: Date | null;
968
+ markScheme: {
969
+ id: string;
970
+ structured: string;
971
+ } | null;
972
+ gradingBoundary: {
973
+ id: string;
974
+ structured: string;
975
+ } | null;
947
976
  section: {
948
- name: string;
949
977
  id: string;
978
+ name: string;
950
979
  } | null;
980
+ id: string;
981
+ createdAt: Date | null;
951
982
  classId: string;
983
+ worksheets: {
984
+ id: string;
985
+ }[];
952
986
  title: string;
953
- instructions: string;
954
987
  dueDate: Date;
988
+ maxGrade: number | null;
989
+ eventId: string | null;
990
+ instructions: string;
955
991
  teacherId: string;
956
992
  acceptFiles: boolean;
957
993
  acceptExtendedResponse: boolean;
@@ -960,45 +996,32 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
960
996
  aiPolicyLevel: number;
961
997
  sectionId: string | null;
962
998
  graded: boolean;
963
- maxGrade: number | null;
964
999
  weight: number;
965
1000
  inProgress: boolean;
966
- eventId: string | null;
967
1001
  markSchemeId: string | null;
968
1002
  order: number | null;
969
1003
  gradingBoundaryId: string | null;
970
- markScheme: {
971
- id: string;
972
- structured: string;
973
- } | null;
974
- gradingBoundary: {
975
- id: string;
976
- structured: string;
977
- } | null;
978
- worksheets: {
979
- id: string;
980
- }[];
981
1004
  }[];
982
1005
  sections: {
983
- name: string;
984
1006
  id: string;
1007
+ name: string;
985
1008
  color: string | null;
986
1009
  classId: string;
987
1010
  order: number | null;
988
1011
  }[];
989
1012
  worksheets: {
990
- name: string;
991
1013
  id: string;
1014
+ name: string;
992
1015
  classId: string;
993
1016
  questions: {
994
1017
  type: import(".prisma/client").$Enums.WorksheetQuestionType;
995
1018
  options: import("@prisma/client/runtime/library.js").JsonValue;
1019
+ markScheme: import("@prisma/client/runtime/library.js").JsonValue;
996
1020
  order: number | null;
997
- points: number;
998
1021
  worksheetId: string;
999
- markScheme: import("@prisma/client/runtime/library.js").JsonValue;
1000
1022
  question: string;
1001
1023
  answer: string;
1024
+ points: number;
1002
1025
  }[];
1003
1026
  }[];
1004
1027
  markSchemes: {
@@ -1011,12 +1034,12 @@ export declare const classRouter: import("@trpc/server").TRPCBuiltRouter<{
1011
1034
  classId: string | null;
1012
1035
  structured: string;
1013
1036
  }[];
1014
- name: string;
1037
+ section: string;
1015
1038
  id: string;
1039
+ name: string;
1016
1040
  schoolId: string | null;
1017
- subject: string;
1018
1041
  color: string | null;
1019
- section: string;
1042
+ subject: string;
1020
1043
  syllabus: string | null;
1021
1044
  departmentId: string | null;
1022
1045
  discussionsEnabled: boolean;