@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
@@ -9,12 +9,22 @@ export declare function getAllClasses(userId: string): Promise<{
9
9
  dueToday: {
10
10
  type: import(".prisma/client").$Enums.AssignmentType;
11
11
  id: string;
12
+ submissions: {
13
+ studentId: string;
14
+ submitted: boolean | null;
15
+ returned: boolean | null;
16
+ }[];
12
17
  title: string;
13
18
  dueDate: Date;
14
19
  }[];
15
20
  assignments: {
16
21
  type: import(".prisma/client").$Enums.AssignmentType;
17
22
  id: string;
23
+ submissions: {
24
+ studentId: string;
25
+ submitted: boolean | null;
26
+ returned: boolean | null;
27
+ }[];
18
28
  title: string;
19
29
  dueDate: Date;
20
30
  }[];
@@ -22,20 +32,20 @@ export declare function getAllClasses(userId: string): Promise<{
22
32
  id: string;
23
33
  username: string;
24
34
  profile: {
25
- displayName: string | null;
26
35
  profilePicture: string | null;
36
+ displayName: string | null;
27
37
  profilePictureThumbnail: string | null;
28
38
  } | null;
29
39
  }[];
30
40
  color: string | null;
31
41
  schoolId: string | null;
32
42
  school: {
33
- name: string;
34
43
  id: string;
44
+ name: string;
35
45
  } | null;
36
46
  department: {
37
- name: string;
38
47
  id: string;
48
+ name: string;
39
49
  color: string | null;
40
50
  } | null;
41
51
  discussionsEnabled: boolean;
@@ -50,12 +60,25 @@ export declare function getAllClasses(userId: string): Promise<{
50
60
  dueToday: {
51
61
  type: import(".prisma/client").$Enums.AssignmentType;
52
62
  id: string;
63
+ submissions: {
64
+ studentId: string;
65
+ submitted: boolean | null;
66
+ returned: boolean | null;
67
+ }[];
53
68
  title: string;
54
69
  dueDate: Date;
55
70
  }[];
56
71
  assignments: {
72
+ late: boolean;
73
+ submitted: boolean;
74
+ returned: boolean;
57
75
  type: import(".prisma/client").$Enums.AssignmentType;
58
76
  id: string;
77
+ submissions: {
78
+ studentId: string;
79
+ submitted: boolean | null;
80
+ returned: boolean | null;
81
+ }[];
59
82
  title: string;
60
83
  dueDate: Date;
61
84
  }[];
@@ -63,20 +86,20 @@ export declare function getAllClasses(userId: string): Promise<{
63
86
  id: string;
64
87
  username: string;
65
88
  profile: {
66
- displayName: string | null;
67
89
  profilePicture: string | null;
90
+ displayName: string | null;
68
91
  profilePictureThumbnail: string | null;
69
92
  } | null;
70
93
  }[];
71
94
  color: string | null;
72
95
  schoolId: string | null;
73
96
  school: {
74
- name: string;
75
97
  id: string;
98
+ name: string;
76
99
  } | null;
77
100
  department: {
78
- name: string;
79
101
  id: string;
102
+ name: string;
80
103
  color: string | null;
81
104
  } | null;
82
105
  discussionsEnabled: boolean;
@@ -88,16 +111,16 @@ export declare function getAllClasses(userId: string): Promise<{
88
111
  export declare function getClass(userId: string, classId: string): Promise<{
89
112
  class: {
90
113
  sections: {
91
- name: string;
92
114
  id: string;
115
+ name: string;
93
116
  color: string | null;
94
117
  classId: string;
95
118
  order: number | null;
96
119
  }[];
97
120
  affiliation: {
98
121
  school: {
99
- name: string;
100
122
  id: string;
123
+ name: string;
101
124
  description: string | null;
102
125
  logo: {
103
126
  path: string;
@@ -106,14 +129,14 @@ export declare function getClass(userId: string, classId: string): Promise<{
106
129
  } | null;
107
130
  } | null;
108
131
  department: {
109
- name: string;
110
132
  id: string;
133
+ name: string;
111
134
  description: string | null;
112
135
  color: string | null;
113
136
  } | null;
114
137
  tags: {
115
- name: string;
116
138
  id: string;
139
+ name: string;
117
140
  color: string;
118
141
  departmentId: string | null;
119
142
  }[];
@@ -123,12 +146,20 @@ export declare function getClass(userId: string, classId: string): Promise<{
123
146
  submitted: boolean | null | undefined;
124
147
  returned: boolean | null | undefined;
125
148
  type: import(".prisma/client").$Enums.AssignmentType;
126
- id: string;
127
- createdAt: Date | null;
149
+ markScheme: {
150
+ id: string;
151
+ structured: string;
152
+ } | null;
153
+ gradingBoundary: {
154
+ id: string;
155
+ structured: string;
156
+ } | null;
128
157
  section: {
129
- name: string;
130
158
  id: string;
159
+ name: string;
131
160
  } | null;
161
+ id: string;
162
+ createdAt: Date | null;
132
163
  submissions: {
133
164
  id: string;
134
165
  studentId: string;
@@ -140,43 +171,20 @@ export declare function getClass(userId: string, classId: string): Promise<{
140
171
  returned: boolean | null;
141
172
  }[];
142
173
  title: string;
143
- instructions: string;
144
174
  dueDate: Date;
145
- graded: boolean;
146
175
  maxGrade: number | null;
176
+ instructions: string;
177
+ graded: boolean;
147
178
  weight: number;
148
179
  inProgress: boolean;
149
180
  order: number | null;
150
- markScheme: {
151
- id: string;
152
- structured: string;
153
- } | null;
154
- gradingBoundary: {
155
- id: string;
156
- structured: string;
157
- } | null;
158
- }[];
159
- announcements: {
160
- id: string;
161
- createdAt: Date;
162
- modifiedAt: Date | null;
163
- remarks: string;
164
- teacher: {
165
- id: string;
166
- username: string;
167
- profile: {
168
- displayName: string | null;
169
- profilePicture: string | null;
170
- profilePictureThumbnail: string | null;
171
- } | null;
172
- };
173
181
  }[];
174
182
  teachers: {
175
183
  id: string;
176
184
  username: string;
177
185
  profile: {
178
- displayName: string | null;
179
186
  profilePicture: string | null;
187
+ displayName: string | null;
180
188
  profilePictureThumbnail: string | null;
181
189
  } | null;
182
190
  }[];
@@ -184,17 +192,32 @@ export declare function getClass(userId: string, classId: string): Promise<{
184
192
  id: string;
185
193
  username: string;
186
194
  profile: {
187
- displayName: string | null;
188
195
  profilePicture: string | null;
196
+ displayName: string | null;
189
197
  profilePictureThumbnail: string | null;
190
198
  } | null;
191
199
  }[];
192
- name: string;
200
+ announcements: {
201
+ id: string;
202
+ createdAt: Date;
203
+ remarks: string;
204
+ modifiedAt: Date | null;
205
+ teacher: {
206
+ id: string;
207
+ username: string;
208
+ profile: {
209
+ profilePicture: string | null;
210
+ displayName: string | null;
211
+ profilePictureThumbnail: string | null;
212
+ } | null;
213
+ };
214
+ }[];
215
+ section: string;
193
216
  id: string;
217
+ name: string;
194
218
  schoolId: string | null;
195
- subject: string;
196
219
  color: string | null;
197
- section: string;
220
+ subject: string;
198
221
  syllabus: string | null;
199
222
  departmentId: string | null;
200
223
  discussionsEnabled: boolean;
@@ -213,11 +236,11 @@ export declare function updateClass(classId: string, data: {
213
236
  studentsCanReply?: boolean;
214
237
  }): Promise<{
215
238
  updatedClass: {
216
- name: string;
239
+ section: string;
217
240
  id: string;
218
- subject: string;
241
+ name: string;
219
242
  color: string | null;
220
- section: string;
243
+ subject: string;
221
244
  departmentId: string | null;
222
245
  discussionsEnabled: boolean;
223
246
  studentsCanCreateDiscussions: boolean;
@@ -251,12 +274,12 @@ export declare function createClass(userId: string, input: {
251
274
  schoolId: string | null;
252
275
  }[];
253
276
  } & {
254
- name: string;
277
+ section: string;
255
278
  id: string;
279
+ name: string;
256
280
  schoolId: string | null;
257
- subject: string;
258
281
  color: string | null;
259
- section: string;
282
+ subject: string;
260
283
  syllabus: string | null;
261
284
  departmentId: string | null;
262
285
  discussionsEnabled: boolean;
@@ -270,10 +293,10 @@ export declare function deleteClass(classId: string): Promise<{
270
293
  }>;
271
294
  export declare function addStudent(classId: string, studentId: string): Promise<{
272
295
  updatedClass: {
273
- name: string;
296
+ section: string;
274
297
  id: string;
298
+ name: string;
275
299
  subject: string;
276
- section: string;
277
300
  };
278
301
  newStudent: {
279
302
  id: string;
@@ -282,12 +305,12 @@ export declare function addStudent(classId: string, studentId: string): Promise<
282
305
  }>;
283
306
  export declare function changeRole(classId: string, userId: string, type: "teacher" | "student"): Promise<{
284
307
  updatedClass: {
285
- name: string;
308
+ section: string;
286
309
  id: string;
310
+ name: string;
287
311
  schoolId: string | null;
288
- subject: string;
289
312
  color: string | null;
290
- section: string;
313
+ subject: string;
291
314
  syllabus: string | null;
292
315
  departmentId: string | null;
293
316
  discussionsEnabled: boolean;
@@ -302,12 +325,12 @@ export declare function changeRole(classId: string, userId: string, type: "teach
302
325
  }>;
303
326
  export declare function removeMember(classId: string, userId: string): Promise<{
304
327
  updatedClass: {
305
- name: string;
328
+ section: string;
306
329
  id: string;
330
+ name: string;
307
331
  schoolId: string | null;
308
- subject: string;
309
332
  color: string | null;
310
- section: string;
333
+ subject: string;
311
334
  syllabus: string | null;
312
335
  departmentId: string | null;
313
336
  discussionsEnabled: boolean;
@@ -322,10 +345,10 @@ export declare function leaveClass(userId: string, classId: string): Promise<{
322
345
  }>;
323
346
  export declare function joinClass(userId: string, classCode: string): Promise<{
324
347
  joinedClass: {
325
- name: string;
348
+ section: string;
326
349
  id: string;
350
+ name: string;
327
351
  subject: string;
328
- section: string;
329
352
  };
330
353
  }>;
331
354
  export declare function getInviteCode(classId: string): Promise<{
@@ -337,6 +360,12 @@ export declare function createInviteCode(classId: string): Promise<{
337
360
  export declare function getGrades(userId: string, classId: string, targetUserId: string): Promise<{
338
361
  grades: ({
339
362
  assignment: {
363
+ markScheme: {
364
+ structured: string;
365
+ } | null;
366
+ gradingBoundary: {
367
+ structured: string;
368
+ } | null;
340
369
  id: string;
341
370
  title: string;
342
371
  dueDate: Date;
@@ -344,12 +373,6 @@ export declare function getGrades(userId: string, classId: string, targetUserId:
344
373
  weight: number;
345
374
  markSchemeId: string | null;
346
375
  gradingBoundaryId: string | null;
347
- markScheme: {
348
- structured: string;
349
- } | null;
350
- gradingBoundary: {
351
- structured: string;
352
- } | null;
353
376
  };
354
377
  } & {
355
378
  id: string;
@@ -400,85 +423,85 @@ export declare function getEvents(classId: string): Promise<{
400
423
  endTime: Date;
401
424
  }[]>;
402
425
  export declare function listMarkSchemes(classId: string): Promise<{
403
- name: string | null;
404
426
  id: string;
405
- departmentId: string | null;
427
+ name: string | null;
406
428
  classId: string | null;
429
+ departmentId: string | null;
407
430
  structured: string;
408
431
  }[]>;
409
432
  export declare function createMarkScheme(classId: string, structure: string): Promise<{
410
- name: string | null;
411
433
  id: string;
412
- departmentId: string | null;
434
+ name: string | null;
413
435
  classId: string | null;
436
+ departmentId: string | null;
414
437
  structured: string;
415
438
  }>;
416
439
  export declare function updateMarkScheme(markSchemeId: string, classId: string, structure: string): Promise<{
417
- name: string | null;
418
440
  id: string;
419
- departmentId: string | null;
441
+ name: string | null;
420
442
  classId: string | null;
443
+ departmentId: string | null;
421
444
  structured: string;
422
445
  }>;
423
446
  export declare function deleteMarkScheme(markSchemeId: string): Promise<{
424
- name: string | null;
425
447
  id: string;
426
- departmentId: string | null;
448
+ name: string | null;
427
449
  classId: string | null;
450
+ departmentId: string | null;
428
451
  structured: string;
429
452
  }>;
430
453
  export declare function listGradingBoundaries(classId: string): Promise<{
431
- name: string | null;
432
454
  id: string;
433
- departmentId: string | null;
455
+ name: string | null;
434
456
  classId: string | null;
457
+ departmentId: string | null;
435
458
  structured: string;
436
459
  }[]>;
437
460
  export declare function createGradingBoundary(classId: string, structure: string): Promise<{
438
- name: string | null;
439
461
  id: string;
440
- departmentId: string | null;
462
+ name: string | null;
441
463
  classId: string | null;
464
+ departmentId: string | null;
442
465
  structured: string;
443
466
  }>;
444
467
  export declare function updateGradingBoundary(gradingBoundaryId: string, classId: string, structure: string): Promise<{
445
- name: string | null;
446
468
  id: string;
447
- departmentId: string | null;
469
+ name: string | null;
448
470
  classId: string | null;
471
+ departmentId: string | null;
449
472
  structured: string;
450
473
  }>;
451
474
  export declare function deleteGradingBoundary(gradingBoundaryId: string): Promise<{
452
- name: string | null;
453
475
  id: string;
454
- departmentId: string | null;
476
+ name: string | null;
455
477
  classId: string | null;
478
+ departmentId: string | null;
456
479
  structured: string;
457
480
  }>;
458
481
  export declare function getSyllabus(classId: string): Promise<{
459
482
  syllabus: string | null | undefined;
460
483
  gradingBoundaries: {
461
- name: string | null;
462
484
  id: string;
463
- departmentId: string | null;
485
+ name: string | null;
464
486
  classId: string | null;
487
+ departmentId: string | null;
465
488
  structured: string;
466
489
  }[];
467
490
  markSchemes: {
468
- name: string | null;
469
491
  id: string;
470
- departmentId: string | null;
492
+ name: string | null;
471
493
  classId: string | null;
494
+ departmentId: string | null;
472
495
  structured: string;
473
496
  }[];
474
497
  }>;
475
498
  export declare function updateSyllabus(classId: string, contents: string): Promise<{
476
- name: string;
499
+ section: string;
477
500
  id: string;
501
+ name: string;
478
502
  schoolId: string | null;
479
- subject: string;
480
503
  color: string | null;
481
- section: string;
504
+ subject: string;
482
505
  syllabus: string | null;
483
506
  departmentId: string | null;
484
507
  discussionsEnabled: boolean;
@@ -490,10 +513,12 @@ export declare function listLabDrafts(classId: string, teacherId: string): Promi
490
513
  id: string;
491
514
  createdAt: Date | null;
492
515
  classId: string;
493
- modifiedAt: Date | null;
494
516
  title: string;
495
- instructions: string;
496
517
  dueDate: Date;
518
+ maxGrade: number | null;
519
+ eventId: string | null;
520
+ instructions: string;
521
+ modifiedAt: Date | null;
497
522
  teacherId: string;
498
523
  acceptFiles: boolean;
499
524
  acceptExtendedResponse: boolean;
@@ -502,11 +527,9 @@ export declare function listLabDrafts(classId: string, teacherId: string): Promi
502
527
  aiPolicyLevel: number;
503
528
  sectionId: string | null;
504
529
  graded: boolean;
505
- maxGrade: number | null;
506
530
  weight: number;
507
531
  inProgress: boolean;
508
532
  template: boolean;
509
- eventId: string | null;
510
533
  markSchemeId: string | null;
511
534
  order: number | null;
512
535
  gradingBoundaryId: string | null;
@@ -527,10 +550,12 @@ export declare function createLabDraft(classId: string, teacherId: string, input
527
550
  id: string;
528
551
  createdAt: Date | null;
529
552
  classId: string;
530
- modifiedAt: Date | null;
531
553
  title: string;
532
- instructions: string;
533
554
  dueDate: Date;
555
+ maxGrade: number | null;
556
+ eventId: string | null;
557
+ instructions: string;
558
+ modifiedAt: Date | null;
534
559
  teacherId: string;
535
560
  acceptFiles: boolean;
536
561
  acceptExtendedResponse: boolean;
@@ -539,11 +564,9 @@ export declare function createLabDraft(classId: string, teacherId: string, input
539
564
  aiPolicyLevel: number;
540
565
  sectionId: string | null;
541
566
  graded: boolean;
542
- maxGrade: number | null;
543
567
  weight: number;
544
568
  inProgress: boolean;
545
569
  template: boolean;
546
- eventId: string | null;
547
570
  markSchemeId: string | null;
548
571
  order: number | null;
549
572
  gradingBoundaryId: string | null;
@@ -553,10 +576,12 @@ export declare function updateLabDraft(classId: string, teacherId: string, draft
553
576
  id: string;
554
577
  createdAt: Date | null;
555
578
  classId: string;
556
- modifiedAt: Date | null;
557
579
  title: string;
558
- instructions: string;
559
580
  dueDate: Date;
581
+ maxGrade: number | null;
582
+ eventId: string | null;
583
+ instructions: string;
584
+ modifiedAt: Date | null;
560
585
  teacherId: string;
561
586
  acceptFiles: boolean;
562
587
  acceptExtendedResponse: boolean;
@@ -565,11 +590,9 @@ export declare function updateLabDraft(classId: string, teacherId: string, draft
565
590
  aiPolicyLevel: number;
566
591
  sectionId: string | null;
567
592
  graded: boolean;
568
- maxGrade: number | null;
569
593
  weight: number;
570
594
  inProgress: boolean;
571
595
  template: boolean;
572
- eventId: string | null;
573
596
  markSchemeId: string | null;
574
597
  order: number | null;
575
598
  gradingBoundaryId: string | null;
@@ -579,10 +602,12 @@ export declare function deleteLabDraft(classId: string, teacherId: string, draft
579
602
  id: string;
580
603
  createdAt: Date | null;
581
604
  classId: string;
582
- modifiedAt: Date | null;
583
605
  title: string;
584
- instructions: string;
585
606
  dueDate: Date;
607
+ maxGrade: number | null;
608
+ eventId: string | null;
609
+ instructions: string;
610
+ modifiedAt: Date | null;
586
611
  teacherId: string;
587
612
  acceptFiles: boolean;
588
613
  acceptExtendedResponse: boolean;
@@ -591,11 +616,9 @@ export declare function deleteLabDraft(classId: string, teacherId: string, draft
591
616
  aiPolicyLevel: number;
592
617
  sectionId: string | null;
593
618
  graded: boolean;
594
- maxGrade: number | null;
595
619
  weight: number;
596
620
  inProgress: boolean;
597
621
  template: boolean;
598
- eventId: string | null;
599
622
  markSchemeId: string | null;
600
623
  order: number | null;
601
624
  gradingBoundaryId: string | null;
@@ -610,10 +633,12 @@ export declare function publishLabDraft(classId: string, teacherId: string, draf
610
633
  id: string;
611
634
  createdAt: Date | null;
612
635
  classId: string;
613
- modifiedAt: Date | null;
614
636
  title: string;
615
- instructions: string;
616
637
  dueDate: Date;
638
+ maxGrade: number | null;
639
+ eventId: string | null;
640
+ instructions: string;
641
+ modifiedAt: Date | null;
617
642
  teacherId: string;
618
643
  acceptFiles: boolean;
619
644
  acceptExtendedResponse: boolean;
@@ -622,11 +647,9 @@ export declare function publishLabDraft(classId: string, teacherId: string, draf
622
647
  aiPolicyLevel: number;
623
648
  sectionId: string | null;
624
649
  graded: boolean;
625
- maxGrade: number | null;
626
650
  weight: number;
627
651
  inProgress: boolean;
628
652
  template: boolean;
629
- eventId: string | null;
630
653
  markSchemeId: string | null;
631
654
  order: number | null;
632
655
  gradingBoundaryId: string | null;
@@ -641,12 +664,12 @@ export declare function getFiles(classId: string): Promise<{
641
664
  teacherAttachments: {
642
665
  path: string;
643
666
  type: string;
644
- name: string;
645
- id: string;
646
667
  user: {
647
668
  id: string;
648
669
  username: string;
649
670
  } | null;
671
+ id: string;
672
+ name: string;
650
673
  size: number | null;
651
674
  uploadedAt: Date | null;
652
675
  thumbnailId: string | null;
@@ -657,12 +680,12 @@ export declare function getFiles(classId: string): Promise<{
657
680
  attachments: {
658
681
  path: string;
659
682
  type: string;
660
- name: string;
661
- id: string;
662
683
  user: {
663
684
  id: string;
664
685
  username: string;
665
686
  } | null;
687
+ id: string;
688
+ name: string;
666
689
  size: number | null;
667
690
  uploadedAt: Date | null;
668
691
  thumbnailId: string | null;
@@ -670,12 +693,12 @@ export declare function getFiles(classId: string): Promise<{
670
693
  annotations: {
671
694
  path: string;
672
695
  type: string;
673
- name: string;
674
- id: string;
675
696
  user: {
676
697
  id: string;
677
698
  username: string;
678
699
  } | null;
700
+ id: string;
701
+ name: string;
679
702
  size: number | null;
680
703
  uploadedAt: Date | null;
681
704
  thumbnailId: string | null;
@@ -686,16 +709,29 @@ export declare function exportClass(classId: string, userId: string): Promise<{
686
709
  classFiles: any;
687
710
  assignments: {
688
711
  type: import(".prisma/client").$Enums.AssignmentType;
689
- id: string;
690
- createdAt: Date | null;
712
+ markScheme: {
713
+ id: string;
714
+ structured: string;
715
+ } | null;
716
+ gradingBoundary: {
717
+ id: string;
718
+ structured: string;
719
+ } | null;
691
720
  section: {
692
- name: string;
693
721
  id: string;
722
+ name: string;
694
723
  } | null;
724
+ id: string;
725
+ createdAt: Date | null;
695
726
  classId: string;
727
+ worksheets: {
728
+ id: string;
729
+ }[];
696
730
  title: string;
697
- instructions: string;
698
731
  dueDate: Date;
732
+ maxGrade: number | null;
733
+ eventId: string | null;
734
+ instructions: string;
699
735
  teacherId: string;
700
736
  acceptFiles: boolean;
701
737
  acceptExtendedResponse: boolean;
@@ -704,45 +740,32 @@ export declare function exportClass(classId: string, userId: string): Promise<{
704
740
  aiPolicyLevel: number;
705
741
  sectionId: string | null;
706
742
  graded: boolean;
707
- maxGrade: number | null;
708
743
  weight: number;
709
744
  inProgress: boolean;
710
- eventId: string | null;
711
745
  markSchemeId: string | null;
712
746
  order: number | null;
713
747
  gradingBoundaryId: string | null;
714
- markScheme: {
715
- id: string;
716
- structured: string;
717
- } | null;
718
- gradingBoundary: {
719
- id: string;
720
- structured: string;
721
- } | null;
722
- worksheets: {
723
- id: string;
724
- }[];
725
748
  }[];
726
749
  sections: {
727
- name: string;
728
750
  id: string;
751
+ name: string;
729
752
  color: string | null;
730
753
  classId: string;
731
754
  order: number | null;
732
755
  }[];
733
756
  worksheets: {
734
- name: string;
735
757
  id: string;
758
+ name: string;
736
759
  classId: string;
737
760
  questions: {
738
761
  type: import(".prisma/client").$Enums.WorksheetQuestionType;
739
762
  options: import("@prisma/client/runtime/library.js").JsonValue;
763
+ markScheme: import("@prisma/client/runtime/library.js").JsonValue;
740
764
  order: number | null;
741
- points: number;
742
765
  worksheetId: string;
743
- markScheme: import("@prisma/client/runtime/library.js").JsonValue;
744
766
  question: string;
745
767
  answer: string;
768
+ points: number;
746
769
  }[];
747
770
  }[];
748
771
  markSchemes: {
@@ -755,12 +778,12 @@ export declare function exportClass(classId: string, userId: string): Promise<{
755
778
  classId: string | null;
756
779
  structured: string;
757
780
  }[];
758
- name: string;
781
+ section: string;
759
782
  id: string;
783
+ name: string;
760
784
  schoolId: string | null;
761
- subject: string;
762
785
  color: string | null;
763
- section: string;
786
+ subject: string;
764
787
  syllabus: string | null;
765
788
  departmentId: string | null;
766
789
  discussionsEnabled: boolean;