@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
@@ -4,28 +4,22 @@
4
4
  */
5
5
  import { Class, Folder } from "@prisma/client";
6
6
  /** @returns Classes where user is a teacher. */
7
- export declare function findTeacherClasses(userId: string): import(".prisma/client").Prisma.PrismaPromise<({
7
+ export declare function findTeacherClasses(userId: string): import("@prisma/client/runtime/library.js").PrismaPromise<({
8
8
  school: {
9
- name: string;
10
9
  id: string;
10
+ name: string;
11
11
  } | null;
12
12
  department: {
13
- name: string;
14
13
  id: string;
14
+ name: string;
15
15
  color: string | null;
16
16
  } | null;
17
- assignments: {
18
- type: import(".prisma/client").$Enums.AssignmentType;
19
- id: string;
20
- title: string;
21
- dueDate: Date;
22
- }[];
23
17
  teachers: {
24
18
  id: string;
25
19
  username: string;
26
20
  profile: {
27
- displayName: string | null;
28
21
  profilePicture: string | null;
22
+ displayName: string | null;
29
23
  profilePictureThumbnail: string | null;
30
24
  } | null;
31
25
  }[];
@@ -33,18 +27,29 @@ export declare function findTeacherClasses(userId: string): import(".prisma/clie
33
27
  id: string;
34
28
  username: string;
35
29
  profile: {
36
- displayName: string | null;
37
30
  profilePicture: string | null;
31
+ displayName: string | null;
38
32
  profilePictureThumbnail: string | null;
39
33
  } | null;
40
34
  }[];
35
+ assignments: {
36
+ type: import(".prisma/client").$Enums.AssignmentType;
37
+ id: string;
38
+ submissions: {
39
+ studentId: string;
40
+ submitted: boolean | null;
41
+ returned: boolean | null;
42
+ }[];
43
+ title: string;
44
+ dueDate: Date;
45
+ }[];
41
46
  } & {
42
- name: string;
47
+ section: string;
43
48
  id: string;
49
+ name: string;
44
50
  schoolId: string | null;
45
- subject: string;
46
51
  color: string | null;
47
- section: string;
52
+ subject: string;
48
53
  syllabus: string | null;
49
54
  departmentId: string | null;
50
55
  discussionsEnabled: boolean;
@@ -52,28 +57,22 @@ export declare function findTeacherClasses(userId: string): import(".prisma/clie
52
57
  studentsCanReply: boolean;
53
58
  })[]>;
54
59
  /** @returns Classes where user is a student. */
55
- export declare function findStudentClasses(userId: string): import(".prisma/client").Prisma.PrismaPromise<({
60
+ export declare function findStudentClasses(userId: string): import("@prisma/client/runtime/library.js").PrismaPromise<({
56
61
  school: {
57
- name: string;
58
62
  id: string;
63
+ name: string;
59
64
  } | null;
60
65
  department: {
61
- name: string;
62
66
  id: string;
67
+ name: string;
63
68
  color: string | null;
64
69
  } | null;
65
- assignments: {
66
- type: import(".prisma/client").$Enums.AssignmentType;
67
- id: string;
68
- title: string;
69
- dueDate: Date;
70
- }[];
71
70
  teachers: {
72
71
  id: string;
73
72
  username: string;
74
73
  profile: {
75
- displayName: string | null;
76
74
  profilePicture: string | null;
75
+ displayName: string | null;
77
76
  profilePictureThumbnail: string | null;
78
77
  } | null;
79
78
  }[];
@@ -81,18 +80,29 @@ export declare function findStudentClasses(userId: string): import(".prisma/clie
81
80
  id: string;
82
81
  username: string;
83
82
  profile: {
84
- displayName: string | null;
85
83
  profilePicture: string | null;
84
+ displayName: string | null;
86
85
  profilePictureThumbnail: string | null;
87
86
  } | null;
88
87
  }[];
88
+ assignments: {
89
+ type: import(".prisma/client").$Enums.AssignmentType;
90
+ id: string;
91
+ submissions: {
92
+ studentId: string;
93
+ submitted: boolean | null;
94
+ returned: boolean | null;
95
+ }[];
96
+ title: string;
97
+ dueDate: Date;
98
+ }[];
89
99
  } & {
90
- name: string;
100
+ section: string;
91
101
  id: string;
102
+ name: string;
92
103
  schoolId: string | null;
93
- subject: string;
94
104
  color: string | null;
95
- section: string;
105
+ subject: string;
96
106
  syllabus: string | null;
97
107
  departmentId: string | null;
98
108
  discussionsEnabled: boolean;
@@ -100,38 +110,106 @@ export declare function findStudentClasses(userId: string): import(".prisma/clie
100
110
  studentsCanReply: boolean;
101
111
  })[]>;
102
112
  /** @returns Class if user is a teacher or school admin. */
103
- export declare function isTeacherInClass(classId: string, userId: string): import(".prisma/client").Prisma.Prisma__ClassClient<{
104
- name: string;
113
+ export declare function isTeacherInClass(classId: string, userId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
114
+ result: {
115
+ userProfile: {
116
+ profilePicture: () => {
117
+ needs: {
118
+ profilePicture: true;
119
+ };
120
+ compute(profile: {
121
+ profilePicture: string | null;
122
+ }): string | null;
123
+ };
124
+ profilePictureThumbnail: () => {
125
+ needs: {
126
+ profilePictureThumbnail: true;
127
+ };
128
+ compute(profile: {
129
+ profilePictureThumbnail: string | null;
130
+ }): string | null;
131
+ };
132
+ };
133
+ };
134
+ model: {};
135
+ query: {};
136
+ client: {};
137
+ }, {}>, "Class", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
138
+ section: string;
105
139
  id: string;
140
+ name: string;
106
141
  schoolId: string | null;
107
- subject: string;
108
142
  color: string | null;
109
- section: string;
143
+ subject: string;
110
144
  syllabus: string | null;
111
145
  departmentId: string | null;
112
146
  discussionsEnabled: boolean;
113
147
  studentsCanCreateDiscussions: boolean;
114
148
  studentsCanReply: boolean;
115
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
116
- datasources: {
117
- db: {
118
- url: string;
119
- };
120
- };
121
- }>;
149
+ } | null>;
122
150
  /** @returns Class with assignments. Students see only assigned; teachers see all. */
123
151
  export declare function findClassWithAssignments(classId: string, options: {
124
152
  isTeacher: boolean;
125
153
  userId?: string;
126
- }): import(".prisma/client").Prisma.Prisma__ClassClient<({
154
+ }): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
155
+ result: {
156
+ userProfile: {
157
+ profilePicture: () => {
158
+ needs: {
159
+ profilePicture: true;
160
+ };
161
+ compute(profile: {
162
+ profilePicture: string | null;
163
+ }): string | null;
164
+ };
165
+ profilePictureThumbnail: () => {
166
+ needs: {
167
+ profilePictureThumbnail: true;
168
+ };
169
+ compute(profile: {
170
+ profilePictureThumbnail: string | null;
171
+ }): string | null;
172
+ };
173
+ };
174
+ };
175
+ model: {};
176
+ query: {};
177
+ client: {};
178
+ }, {}>, "Class", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<({
179
+ teachers: {
180
+ id: string;
181
+ username: string;
182
+ profile: {
183
+ profilePicture: string | null;
184
+ displayName: string | null;
185
+ profilePictureThumbnail: string | null;
186
+ } | null;
187
+ }[];
188
+ students: {
189
+ id: string;
190
+ username: string;
191
+ profile: {
192
+ profilePicture: string | null;
193
+ displayName: string | null;
194
+ profilePictureThumbnail: string | null;
195
+ } | null;
196
+ }[];
127
197
  assignments: {
128
198
  type: import(".prisma/client").$Enums.AssignmentType;
129
- id: string;
130
- createdAt: Date | null;
199
+ markScheme: {
200
+ id: string;
201
+ structured: string;
202
+ } | null;
203
+ gradingBoundary: {
204
+ id: string;
205
+ structured: string;
206
+ } | null;
131
207
  section: {
132
- name: string;
133
208
  id: string;
209
+ name: string;
134
210
  } | null;
211
+ id: string;
212
+ createdAt: Date | null;
135
213
  submissions: {
136
214
  id: string;
137
215
  studentId: string;
@@ -143,146 +221,192 @@ export declare function findClassWithAssignments(classId: string, options: {
143
221
  returned: boolean | null;
144
222
  }[];
145
223
  title: string;
146
- instructions: string;
147
224
  dueDate: Date;
148
- graded: boolean;
149
225
  maxGrade: number | null;
226
+ instructions: string;
227
+ graded: boolean;
150
228
  weight: number;
151
229
  inProgress: boolean;
152
230
  order: number | null;
153
- markScheme: {
154
- id: string;
155
- structured: string;
156
- } | null;
157
- gradingBoundary: {
158
- id: string;
159
- structured: string;
160
- } | null;
161
231
  }[];
162
232
  announcements: {
163
233
  id: string;
164
234
  createdAt: Date;
165
- modifiedAt: Date | null;
166
235
  remarks: string;
236
+ modifiedAt: Date | null;
167
237
  teacher: {
168
238
  id: string;
169
239
  username: string;
170
240
  profile: {
171
- displayName: string | null;
172
241
  profilePicture: string | null;
242
+ displayName: string | null;
173
243
  profilePictureThumbnail: string | null;
174
244
  } | null;
175
245
  };
176
246
  }[];
177
- teachers: {
178
- id: string;
179
- username: string;
180
- profile: {
181
- displayName: string | null;
182
- profilePicture: string | null;
183
- profilePictureThumbnail: string | null;
184
- } | null;
185
- }[];
186
- students: {
187
- id: string;
188
- username: string;
189
- profile: {
190
- displayName: string | null;
191
- profilePicture: string | null;
192
- profilePictureThumbnail: string | null;
193
- } | null;
194
- }[];
195
247
  } & {
196
- name: string;
248
+ section: string;
197
249
  id: string;
250
+ name: string;
198
251
  schoolId: string | null;
199
- subject: string;
200
252
  color: string | null;
201
- section: string;
253
+ subject: string;
202
254
  syllabus: string | null;
203
255
  departmentId: string | null;
204
256
  discussionsEnabled: boolean;
205
257
  studentsCanCreateDiscussions: boolean;
206
258
  studentsCanReply: boolean;
207
- }) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
208
- datasources: {
209
- db: {
210
- url: string;
259
+ }) | null>;
260
+ /** @returns Class by ID (minimal). */
261
+ export declare function findClassByIdBasic(classId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
262
+ result: {
263
+ userProfile: {
264
+ profilePicture: () => {
265
+ needs: {
266
+ profilePicture: true;
267
+ };
268
+ compute(profile: {
269
+ profilePicture: string | null;
270
+ }): string | null;
271
+ };
272
+ profilePictureThumbnail: () => {
273
+ needs: {
274
+ profilePictureThumbnail: true;
275
+ };
276
+ compute(profile: {
277
+ profilePictureThumbnail: string | null;
278
+ }): string | null;
279
+ };
211
280
  };
212
281
  };
213
- }>;
214
- /** @returns Class by ID (minimal). */
215
- export declare function findClassByIdBasic(classId: string): import(".prisma/client").Prisma.Prisma__ClassClient<{
216
- name: string;
282
+ model: {};
283
+ query: {};
284
+ client: {};
285
+ }, {}>, "Class", "findUnique", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
286
+ section: string;
217
287
  id: string;
288
+ name: string;
218
289
  schoolId: string | null;
219
- subject: string;
220
290
  color: string | null;
221
- section: string;
291
+ subject: string;
222
292
  syllabus: string | null;
223
293
  departmentId: string | null;
224
294
  discussionsEnabled: boolean;
225
295
  studentsCanCreateDiscussions: boolean;
226
296
  studentsCanReply: boolean;
227
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
228
- datasources: {
229
- db: {
230
- url: string;
231
- };
232
- };
233
- }>;
297
+ } | null>;
234
298
  /** @returns Sections for a class. */
235
- export declare function findSectionsByClassId(classId: string): import(".prisma/client").Prisma.PrismaPromise<{
236
- name: string;
299
+ export declare function findSectionsByClassId(classId: string): import("@prisma/client/runtime/library.js").PrismaPromise<{
237
300
  id: string;
301
+ name: string;
238
302
  color: string | null;
239
303
  classId: string;
240
304
  order: number | null;
241
305
  }[]>;
242
306
  /** @returns User by ID (id, username only). */
243
- export declare function findUserById(userId: string): import(".prisma/client").Prisma.Prisma__UserClient<{
307
+ export declare function findUserById(userId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
308
+ result: {
309
+ userProfile: {
310
+ profilePicture: () => {
311
+ needs: {
312
+ profilePicture: true;
313
+ };
314
+ compute(profile: {
315
+ profilePicture: string | null;
316
+ }): string | null;
317
+ };
318
+ profilePictureThumbnail: () => {
319
+ needs: {
320
+ profilePictureThumbnail: true;
321
+ };
322
+ compute(profile: {
323
+ profilePictureThumbnail: string | null;
324
+ }): string | null;
325
+ };
326
+ };
327
+ };
328
+ model: {};
329
+ query: {};
330
+ client: {};
331
+ }, {}>, "User", "findUnique", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
244
332
  id: string;
245
333
  username: string;
246
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
247
- datasources: {
248
- db: {
249
- url: string;
334
+ } | null>;
335
+ /** @returns Session by class invite code. */
336
+ export declare function findSessionByClassCode(classCode: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
337
+ result: {
338
+ userProfile: {
339
+ profilePicture: () => {
340
+ needs: {
341
+ profilePicture: true;
342
+ };
343
+ compute(profile: {
344
+ profilePicture: string | null;
345
+ }): string | null;
346
+ };
347
+ profilePictureThumbnail: () => {
348
+ needs: {
349
+ profilePictureThumbnail: true;
350
+ };
351
+ compute(profile: {
352
+ profilePictureThumbnail: string | null;
353
+ }): string | null;
354
+ };
250
355
  };
251
356
  };
252
- }>;
253
- /** @returns Session by class invite code. */
254
- export declare function findSessionByClassCode(classCode: string): import(".prisma/client").Prisma.Prisma__SessionClient<{
357
+ model: {};
358
+ query: {};
359
+ client: {};
360
+ }, {}>, "Session", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
255
361
  type: import(".prisma/client").$Enums.SessionType;
256
362
  id: string;
257
- createdAt: Date | null;
258
363
  userId: string | null;
259
- expiresAt: Date | null;
364
+ createdAt: Date | null;
260
365
  classId: string | null;
261
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
262
- datasources: {
263
- db: {
264
- url: string;
366
+ expiresAt: Date | null;
367
+ } | null>;
368
+ /** @returns Session for a class. */
369
+ export declare function findSessionByClassId(classId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
370
+ result: {
371
+ userProfile: {
372
+ profilePicture: () => {
373
+ needs: {
374
+ profilePicture: true;
375
+ };
376
+ compute(profile: {
377
+ profilePicture: string | null;
378
+ }): string | null;
379
+ };
380
+ profilePictureThumbnail: () => {
381
+ needs: {
382
+ profilePictureThumbnail: true;
383
+ };
384
+ compute(profile: {
385
+ profilePictureThumbnail: string | null;
386
+ }): string | null;
387
+ };
265
388
  };
266
389
  };
267
- }>;
268
- /** @returns Session for a class. */
269
- export declare function findSessionByClassId(classId: string): import(".prisma/client").Prisma.Prisma__SessionClient<{
390
+ model: {};
391
+ query: {};
392
+ client: {};
393
+ }, {}>, "Session", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
270
394
  type: import(".prisma/client").$Enums.SessionType;
271
395
  id: string;
272
- createdAt: Date | null;
273
396
  userId: string | null;
274
- expiresAt: Date | null;
397
+ createdAt: Date | null;
275
398
  classId: string | null;
276
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
277
- datasources: {
278
- db: {
279
- url: string;
280
- };
281
- };
282
- }>;
399
+ expiresAt: Date | null;
400
+ } | null>;
283
401
  /** @returns User's graded submissions for grade calculation. */
284
- export declare function findSubmissionsForGrades(userId: string, classId: string): import(".prisma/client").Prisma.PrismaPromise<({
402
+ export declare function findSubmissionsForGrades(userId: string, classId: string): import("@prisma/client/runtime/library.js").PrismaPromise<({
285
403
  assignment: {
404
+ markScheme: {
405
+ structured: string;
406
+ } | null;
407
+ gradingBoundary: {
408
+ structured: string;
409
+ } | null;
286
410
  id: string;
287
411
  title: string;
288
412
  dueDate: Date;
@@ -290,12 +414,6 @@ export declare function findSubmissionsForGrades(userId: string, classId: string
290
414
  weight: number;
291
415
  markSchemeId: string | null;
292
416
  gradingBoundaryId: string | null;
293
- markScheme: {
294
- structured: string;
295
- } | null;
296
- gradingBoundary: {
297
- structured: string;
298
- } | null;
299
417
  };
300
418
  } & {
301
419
  id: string;
@@ -315,47 +433,67 @@ export declare function findSubmissionsForGrades(userId: string, classId: string
315
433
  returned: boolean | null;
316
434
  })[]>;
317
435
  /** @returns Events for a class. */
318
- export declare function findEventsByClassId(classId: string): import(".prisma/client").Prisma.PrismaPromise<{
436
+ export declare function findEventsByClassId(classId: string): import("@prisma/client/runtime/library.js").PrismaPromise<{
319
437
  name: string | null;
320
438
  startTime: Date;
321
439
  endTime: Date;
322
440
  }[]>;
323
441
  /** @returns Mark schemes for a class. */
324
- export declare function findMarkSchemesByClassId(classId: string): import(".prisma/client").Prisma.PrismaPromise<{
325
- name: string | null;
442
+ export declare function findMarkSchemesByClassId(classId: string): import("@prisma/client/runtime/library.js").PrismaPromise<{
326
443
  id: string;
327
- departmentId: string | null;
444
+ name: string | null;
328
445
  classId: string | null;
446
+ departmentId: string | null;
329
447
  structured: string;
330
448
  }[]>;
331
449
  /** @returns Grading boundaries for a class. */
332
- export declare function findGradingBoundariesByClassId(classId: string): import(".prisma/client").Prisma.PrismaPromise<{
333
- name: string | null;
450
+ export declare function findGradingBoundariesByClassId(classId: string): import("@prisma/client/runtime/library.js").PrismaPromise<{
334
451
  id: string;
335
- departmentId: string | null;
452
+ name: string | null;
336
453
  classId: string | null;
454
+ departmentId: string | null;
337
455
  structured: string;
338
456
  }[]>;
339
457
  /** @returns Class syllabus. */
340
- export declare function findClassSyllabus(classId: string): import(".prisma/client").Prisma.Prisma__ClassClient<{
341
- syllabus: string | null;
342
- } | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
343
- datasources: {
344
- db: {
345
- url: string;
458
+ export declare function findClassSyllabus(classId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
459
+ result: {
460
+ userProfile: {
461
+ profilePicture: () => {
462
+ needs: {
463
+ profilePicture: true;
464
+ };
465
+ compute(profile: {
466
+ profilePicture: string | null;
467
+ }): string | null;
468
+ };
469
+ profilePictureThumbnail: () => {
470
+ needs: {
471
+ profilePictureThumbnail: true;
472
+ };
473
+ compute(profile: {
474
+ profilePictureThumbnail: string | null;
475
+ }): string | null;
476
+ };
346
477
  };
347
478
  };
348
- }>;
479
+ model: {};
480
+ query: {};
481
+ client: {};
482
+ }, {}>, "Class", "findUnique", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
483
+ syllabus: string | null;
484
+ } | null>;
349
485
  /** @returns In-progress lab drafts for a teacher. */
350
- export declare function findLabDraftsByClass(classId: string, teacherId: string): import(".prisma/client").Prisma.PrismaPromise<{
486
+ export declare function findLabDraftsByClass(classId: string, teacherId: string): import("@prisma/client/runtime/library.js").PrismaPromise<{
351
487
  type: import(".prisma/client").$Enums.AssignmentType;
352
488
  id: string;
353
489
  createdAt: Date | null;
354
490
  classId: string;
355
- modifiedAt: Date | null;
356
491
  title: string;
357
- instructions: string;
358
492
  dueDate: Date;
493
+ maxGrade: number | null;
494
+ eventId: string | null;
495
+ instructions: string;
496
+ modifiedAt: Date | null;
359
497
  teacherId: string;
360
498
  acceptFiles: boolean;
361
499
  acceptExtendedResponse: boolean;
@@ -364,48 +502,46 @@ export declare function findLabDraftsByClass(classId: string, teacherId: string)
364
502
  aiPolicyLevel: number;
365
503
  sectionId: string | null;
366
504
  graded: boolean;
367
- maxGrade: number | null;
368
505
  weight: number;
369
506
  inProgress: boolean;
370
507
  template: boolean;
371
- eventId: string | null;
372
508
  markSchemeId: string | null;
373
509
  order: number | null;
374
510
  gradingBoundaryId: string | null;
375
511
  }[]>;
376
512
  /** @returns Assignments with attachments and submissions. */
377
- export declare function findAssignmentsWithFiles(classId: string): import(".prisma/client").Prisma.PrismaPromise<({
513
+ export declare function findAssignmentsWithFiles(classId: string): import("@prisma/client/runtime/library.js").PrismaPromise<({
378
514
  submissions: ({
379
- annotations: {
515
+ attachments: {
380
516
  path: string;
381
517
  type: string;
382
- name: string;
383
- id: string;
384
518
  user: {
385
519
  id: string;
386
520
  username: string;
387
521
  } | null;
522
+ id: string;
523
+ name: string;
388
524
  size: number | null;
389
525
  uploadedAt: Date | null;
390
526
  thumbnailId: string | null;
391
527
  }[];
392
- attachments: {
528
+ student: {
529
+ id: string;
530
+ username: string;
531
+ };
532
+ annotations: {
393
533
  path: string;
394
534
  type: string;
395
- name: string;
396
- id: string;
397
535
  user: {
398
536
  id: string;
399
537
  username: string;
400
538
  } | null;
539
+ id: string;
540
+ name: string;
401
541
  size: number | null;
402
542
  uploadedAt: Date | null;
403
543
  thumbnailId: string | null;
404
544
  }[];
405
- student: {
406
- id: string;
407
- username: string;
408
- };
409
545
  } & {
410
546
  id: string;
411
547
  createdAt: Date;
@@ -430,12 +566,12 @@ export declare function findAssignmentsWithFiles(classId: string): import(".pris
430
566
  attachments: {
431
567
  path: string;
432
568
  type: string;
433
- name: string;
434
- id: string;
435
569
  user: {
436
570
  id: string;
437
571
  username: string;
438
572
  } | null;
573
+ id: string;
574
+ name: string;
439
575
  size: number | null;
440
576
  uploadedAt: Date | null;
441
577
  thumbnailId: string | null;
@@ -445,10 +581,12 @@ export declare function findAssignmentsWithFiles(classId: string): import(".pris
445
581
  id: string;
446
582
  createdAt: Date | null;
447
583
  classId: string;
448
- modifiedAt: Date | null;
449
584
  title: string;
450
- instructions: string;
451
585
  dueDate: Date;
586
+ maxGrade: number | null;
587
+ eventId: string | null;
588
+ instructions: string;
589
+ modifiedAt: Date | null;
452
590
  teacherId: string;
453
591
  acceptFiles: boolean;
454
592
  acceptExtendedResponse: boolean;
@@ -457,11 +595,9 @@ export declare function findAssignmentsWithFiles(classId: string): import(".pris
457
595
  aiPolicyLevel: number;
458
596
  sectionId: string | null;
459
597
  graded: boolean;
460
- maxGrade: number | null;
461
598
  weight: number;
462
599
  inProgress: boolean;
463
600
  template: boolean;
464
- eventId: string | null;
465
601
  markSchemeId: string | null;
466
602
  order: number | null;
467
603
  gradingBoundaryId: string | null;
@@ -470,16 +606,29 @@ export declare function findFullExportableClass(classId: string): Promise<{
470
606
  classFiles: any;
471
607
  assignments: {
472
608
  type: import(".prisma/client").$Enums.AssignmentType;
473
- id: string;
474
- createdAt: Date | null;
609
+ markScheme: {
610
+ id: string;
611
+ structured: string;
612
+ } | null;
613
+ gradingBoundary: {
614
+ id: string;
615
+ structured: string;
616
+ } | null;
475
617
  section: {
476
- name: string;
477
618
  id: string;
619
+ name: string;
478
620
  } | null;
621
+ id: string;
622
+ createdAt: Date | null;
479
623
  classId: string;
624
+ worksheets: {
625
+ id: string;
626
+ }[];
480
627
  title: string;
481
- instructions: string;
482
628
  dueDate: Date;
629
+ maxGrade: number | null;
630
+ eventId: string | null;
631
+ instructions: string;
483
632
  teacherId: string;
484
633
  acceptFiles: boolean;
485
634
  acceptExtendedResponse: boolean;
@@ -488,45 +637,32 @@ export declare function findFullExportableClass(classId: string): Promise<{
488
637
  aiPolicyLevel: number;
489
638
  sectionId: string | null;
490
639
  graded: boolean;
491
- maxGrade: number | null;
492
640
  weight: number;
493
641
  inProgress: boolean;
494
- eventId: string | null;
495
642
  markSchemeId: string | null;
496
643
  order: number | null;
497
644
  gradingBoundaryId: string | null;
498
- markScheme: {
499
- id: string;
500
- structured: string;
501
- } | null;
502
- gradingBoundary: {
503
- id: string;
504
- structured: string;
505
- } | null;
506
- worksheets: {
507
- id: string;
508
- }[];
509
645
  }[];
510
646
  sections: {
511
- name: string;
512
647
  id: string;
648
+ name: string;
513
649
  color: string | null;
514
650
  classId: string;
515
651
  order: number | null;
516
652
  }[];
517
653
  worksheets: {
518
- name: string;
519
654
  id: string;
655
+ name: string;
520
656
  classId: string;
521
657
  questions: {
522
658
  type: import(".prisma/client").$Enums.WorksheetQuestionType;
523
659
  options: import("@prisma/client/runtime/library.js").JsonValue;
660
+ markScheme: import("@prisma/client/runtime/library.js").JsonValue;
524
661
  order: number | null;
525
- points: number;
526
662
  worksheetId: string;
527
- markScheme: import("@prisma/client/runtime/library.js").JsonValue;
528
663
  question: string;
529
664
  answer: string;
665
+ points: number;
530
666
  }[];
531
667
  }[];
532
668
  markSchemes: {
@@ -539,12 +675,12 @@ export declare function findFullExportableClass(classId: string): Promise<{
539
675
  classId: string | null;
540
676
  structured: string;
541
677
  }[];
542
- name: string;
678
+ section: string;
543
679
  id: string;
680
+ name: string;
544
681
  schoolId: string | null;
545
- subject: string;
546
682
  color: string | null;
547
- section: string;
683
+ subject: string;
548
684
  syllabus: string | null;
549
685
  departmentId: string | null;
550
686
  discussionsEnabled: boolean;