@studious-lms/server 1.0.6 → 1.0.8

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 (115) hide show
  1. package/API_SPECIFICATION.md +1461 -0
  2. package/dist/exportType.d.ts +3 -3
  3. package/dist/exportType.d.ts.map +1 -1
  4. package/dist/exportType.js +1 -2
  5. package/dist/index.js +25 -30
  6. package/dist/lib/fileUpload.d.ts.map +1 -1
  7. package/dist/lib/fileUpload.js +31 -29
  8. package/dist/lib/googleCloudStorage.js +9 -14
  9. package/dist/lib/prisma.js +4 -7
  10. package/dist/lib/thumbnailGenerator.js +12 -20
  11. package/dist/middleware/auth.d.ts.map +1 -1
  12. package/dist/middleware/auth.js +17 -22
  13. package/dist/middleware/logging.js +5 -9
  14. package/dist/routers/_app.d.ts +3619 -1937
  15. package/dist/routers/_app.d.ts.map +1 -1
  16. package/dist/routers/_app.js +28 -27
  17. package/dist/routers/agenda.d.ts +14 -9
  18. package/dist/routers/agenda.d.ts.map +1 -1
  19. package/dist/routers/agenda.js +14 -17
  20. package/dist/routers/announcement.d.ts +5 -4
  21. package/dist/routers/announcement.d.ts.map +1 -1
  22. package/dist/routers/announcement.js +28 -31
  23. package/dist/routers/assignment.d.ts +283 -197
  24. package/dist/routers/assignment.d.ts.map +1 -1
  25. package/dist/routers/assignment.js +256 -202
  26. package/dist/routers/attendance.d.ts +6 -5
  27. package/dist/routers/attendance.d.ts.map +1 -1
  28. package/dist/routers/attendance.js +31 -34
  29. package/dist/routers/auth.d.ts +2 -1
  30. package/dist/routers/auth.d.ts.map +1 -1
  31. package/dist/routers/auth.js +80 -75
  32. package/dist/routers/class.d.ts +285 -15
  33. package/dist/routers/class.d.ts.map +1 -1
  34. package/dist/routers/class.js +440 -164
  35. package/dist/routers/event.d.ts +48 -39
  36. package/dist/routers/event.d.ts.map +1 -1
  37. package/dist/routers/event.js +76 -79
  38. package/dist/routers/file.d.ts +72 -2
  39. package/dist/routers/file.d.ts.map +1 -1
  40. package/dist/routers/file.js +260 -32
  41. package/dist/routers/folder.d.ts +296 -0
  42. package/dist/routers/folder.d.ts.map +1 -0
  43. package/dist/routers/folder.js +693 -0
  44. package/dist/routers/notifications.d.ts +103 -0
  45. package/dist/routers/notifications.d.ts.map +1 -0
  46. package/dist/routers/notifications.js +91 -0
  47. package/dist/routers/school.d.ts +208 -0
  48. package/dist/routers/school.d.ts.map +1 -0
  49. package/dist/routers/school.js +481 -0
  50. package/dist/routers/section.d.ts +2 -1
  51. package/dist/routers/section.d.ts.map +1 -1
  52. package/dist/routers/section.js +30 -33
  53. package/dist/routers/user.d.ts +3 -2
  54. package/dist/routers/user.d.ts.map +1 -1
  55. package/dist/routers/user.js +21 -24
  56. package/dist/seedDatabase.d.ts +22 -0
  57. package/dist/seedDatabase.d.ts.map +1 -0
  58. package/dist/seedDatabase.js +75 -0
  59. package/dist/socket/handlers.js +26 -30
  60. package/dist/trpc.d.ts +5 -0
  61. package/dist/trpc.d.ts.map +1 -1
  62. package/dist/trpc.js +35 -26
  63. package/dist/types/trpc.d.ts +1 -1
  64. package/dist/types/trpc.d.ts.map +1 -1
  65. package/dist/types/trpc.js +1 -2
  66. package/dist/utils/email.js +2 -8
  67. package/dist/utils/generateInviteCode.js +1 -5
  68. package/dist/utils/logger.d.ts.map +1 -1
  69. package/dist/utils/logger.js +13 -9
  70. package/dist/utils/prismaErrorHandler.d.ts +9 -0
  71. package/dist/utils/prismaErrorHandler.d.ts.map +1 -0
  72. package/dist/utils/prismaErrorHandler.js +234 -0
  73. package/dist/utils/prismaWrapper.d.ts +14 -0
  74. package/dist/utils/prismaWrapper.d.ts.map +1 -0
  75. package/dist/utils/prismaWrapper.js +64 -0
  76. package/package.json +12 -4
  77. package/prisma/migrations/20250807062924_init/migration.sql +436 -0
  78. package/prisma/migrations/migration_lock.toml +3 -0
  79. package/prisma/schema.prisma +68 -1
  80. package/src/exportType.ts +3 -3
  81. package/src/index.ts +6 -6
  82. package/src/lib/fileUpload.ts +19 -10
  83. package/src/lib/thumbnailGenerator.ts +2 -2
  84. package/src/middleware/auth.ts +2 -4
  85. package/src/middleware/logging.ts +2 -2
  86. package/src/routers/_app.ts +17 -13
  87. package/src/routers/agenda.ts +2 -2
  88. package/src/routers/announcement.ts +2 -2
  89. package/src/routers/assignment.ts +86 -26
  90. package/src/routers/attendance.ts +2 -2
  91. package/src/routers/auth.ts +83 -57
  92. package/src/routers/class.ts +339 -39
  93. package/src/routers/event.ts +2 -2
  94. package/src/routers/file.ts +276 -21
  95. package/src/routers/folder.ts +755 -0
  96. package/src/routers/notifications.ts +93 -0
  97. package/src/routers/section.ts +2 -2
  98. package/src/routers/user.ts +3 -3
  99. package/src/seedDatabase.ts +88 -0
  100. package/src/socket/handlers.ts +5 -5
  101. package/src/trpc.ts +17 -4
  102. package/src/types/trpc.ts +1 -1
  103. package/src/utils/logger.ts +14 -4
  104. package/src/utils/prismaErrorHandler.ts +275 -0
  105. package/src/utils/prismaWrapper.ts +91 -0
  106. package/tests/auth.test.ts +25 -0
  107. package/tests/class.test.ts +281 -0
  108. package/tests/setup.ts +98 -0
  109. package/tests/startup.test.ts +5 -0
  110. package/tsconfig.json +2 -1
  111. package/vitest.config.ts +11 -0
  112. package/dist/logger.d.ts +0 -26
  113. package/dist/logger.d.ts.map +0 -1
  114. package/dist/logger.js +0 -135
  115. package/src/logger.ts +0 -163
@@ -1,10 +1,11 @@
1
1
  import { z } from "zod";
2
2
  export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
3
- ctx: import("../trpc").Context;
3
+ ctx: import("../trpc.js").Context;
4
4
  meta: object;
5
5
  errorShape: {
6
6
  data: {
7
7
  zodError: z.typeToFlattenedError<any, string> | null;
8
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
8
9
  code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
9
10
  httpStatus: number;
10
11
  path?: string;
@@ -17,23 +18,25 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
17
18
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
18
19
  create: import("@trpc/server").TRPCMutationProcedure<{
19
20
  input: {
20
- classId: string;
21
21
  title: string;
22
- instructions: string;
23
22
  dueDate: string;
24
- type?: "HOMEWORK" | "QUIZ" | "TEST" | "PROJECT" | "ESSAY" | "DISCUSSION" | "PRESENTATION" | "LAB" | "OTHER" | undefined;
23
+ classId: string;
24
+ instructions: string;
25
+ type?: "LAB" | "HOMEWORK" | "QUIZ" | "TEST" | "PROJECT" | "ESSAY" | "DISCUSSION" | "PRESENTATION" | "OTHER" | undefined;
25
26
  files?: {
26
27
  type: string;
27
28
  name: string;
28
- data: string;
29
29
  size: number;
30
+ data: string;
30
31
  }[] | undefined;
32
+ maxGrade?: number | undefined;
31
33
  markSchemeId?: string | undefined;
32
34
  gradingBoundaryId?: string | undefined;
33
- sectionId?: string | undefined;
34
- graded?: boolean | undefined;
35
- maxGrade?: number | undefined;
36
35
  weight?: number | undefined;
36
+ graded?: boolean | undefined;
37
+ sectionId?: string | undefined;
38
+ inProgress?: boolean | undefined;
39
+ existingFileIds?: string[] | undefined;
37
40
  };
38
41
  output: {
39
42
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -46,16 +49,16 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
46
49
  id: string;
47
50
  name: string;
48
51
  } | null;
52
+ title: string;
53
+ dueDate: Date;
54
+ maxGrade: number | null;
49
55
  teacher: {
50
56
  id: string;
51
57
  username: string;
52
58
  };
53
- title: string;
54
59
  instructions: string;
55
- dueDate: Date;
56
- graded: boolean;
57
- maxGrade: number | null;
58
60
  weight: number;
61
+ graded: boolean;
59
62
  attachments: {
60
63
  type: string;
61
64
  id: string;
@@ -68,20 +71,22 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
68
71
  input: {
69
72
  id: string;
70
73
  classId: string;
71
- type?: "HOMEWORK" | "QUIZ" | "TEST" | "PROJECT" | "ESSAY" | "DISCUSSION" | "PRESENTATION" | "LAB" | "OTHER" | undefined;
74
+ type?: "LAB" | "HOMEWORK" | "QUIZ" | "TEST" | "PROJECT" | "ESSAY" | "DISCUSSION" | "PRESENTATION" | "OTHER" | undefined;
72
75
  files?: {
73
76
  type: string;
74
77
  name: string;
75
- data: string;
76
78
  size: number;
79
+ data: string;
77
80
  }[] | undefined;
78
81
  title?: string | undefined;
79
- instructions?: string | undefined;
80
82
  dueDate?: string | undefined;
81
- sectionId?: string | null | undefined;
82
- graded?: boolean | undefined;
83
83
  maxGrade?: number | undefined;
84
+ instructions?: string | undefined;
84
85
  weight?: number | undefined;
86
+ graded?: boolean | undefined;
87
+ sectionId?: string | null | undefined;
88
+ inProgress?: boolean | undefined;
89
+ existingFileIds?: string[] | undefined;
85
90
  removedAttachments?: string[] | undefined;
86
91
  };
87
92
  output: {
@@ -95,48 +100,58 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
95
100
  }[];
96
101
  class: {
97
102
  id: string;
103
+ schoolId: string | null;
98
104
  name: string;
99
105
  subject: string;
100
106
  color: string | null;
101
107
  section: string;
108
+ syllabus: string | null;
102
109
  };
103
110
  section: {
104
111
  id: string;
105
112
  name: string;
106
113
  classId: string;
107
114
  } | null;
115
+ title: string;
116
+ dueDate: Date;
117
+ maxGrade: number | null;
108
118
  teacher: {
109
119
  id: string;
110
120
  username: string;
111
121
  email: string;
112
122
  password: string;
113
123
  verified: boolean;
124
+ role: import(".prisma/client").$Enums.UserRole;
114
125
  profileId: string | null;
126
+ schoolId: string | null;
115
127
  };
116
- title: string;
117
128
  instructions: string;
118
- dueDate: Date;
119
- createdAt: Date | null;
120
- graded: boolean;
121
- maxGrade: number | null;
122
129
  weight: number;
130
+ graded: boolean;
131
+ createdAt: Date | null;
123
132
  attachments: {
133
+ path: string;
124
134
  type: string;
125
135
  id: string;
126
136
  name: string;
137
+ size: number | null;
138
+ uploadedAt: Date | null;
127
139
  thumbnail: {
128
140
  path: string;
129
141
  type: string;
130
142
  id: string;
131
143
  name: string;
132
- userId: string | null;
133
- assignmentId: string | null;
134
- submissionId: string | null;
135
144
  size: number | null;
136
145
  uploadedAt: Date | null;
146
+ assignmentId: string | null;
147
+ submissionId: string | null;
148
+ userId: string | null;
137
149
  thumbnailId: string | null;
138
150
  annotationId: string | null;
151
+ classDraftId: string | null;
152
+ folderId: string | null;
139
153
  } | null;
154
+ thumbnailId: string | null;
140
155
  }[];
141
156
  };
142
157
  meta: object;
@@ -185,15 +200,16 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
185
200
  id: string;
186
201
  name: string;
187
202
  size: number | null;
203
+ uploadedAt: Date | null;
188
204
  thumbnailId: string | null;
189
205
  }[];
190
206
  eventAttached: {
191
207
  id: string;
192
208
  name: string | null;
193
- remarks: string | null;
209
+ location: string | null;
194
210
  startTime: Date;
195
211
  endTime: Date;
196
- location: string | null;
212
+ remarks: string | null;
197
213
  } | null;
198
214
  markScheme: {
199
215
  id: string;
@@ -205,20 +221,22 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
205
221
  } | null;
206
222
  type: import(".prisma/client").$Enums.AssignmentType;
207
223
  id: string;
224
+ title: string;
225
+ dueDate: Date;
226
+ maxGrade: number | null;
208
227
  classId: string;
228
+ eventId: string | null;
209
229
  markSchemeId: string | null;
210
230
  gradingBoundaryId: string | null;
211
- title: string;
212
231
  instructions: string;
213
- dueDate: Date;
232
+ weight: number;
233
+ graded: boolean;
234
+ sectionId: string | null;
235
+ template: boolean;
214
236
  createdAt: Date | null;
215
237
  modifiedAt: Date | null;
216
238
  teacherId: string;
217
- sectionId: string | null;
218
- graded: boolean;
219
- maxGrade: number | null;
220
- weight: number;
221
- eventId: string | null;
239
+ inProgress: boolean;
222
240
  };
223
241
  meta: object;
224
242
  }>;
@@ -229,17 +247,15 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
229
247
  assignmentId: string;
230
248
  };
231
249
  output: ({
232
- student: {
233
- id: string;
234
- username: string;
235
- };
236
250
  assignment: {
237
251
  class: {
238
252
  id: string;
253
+ schoolId: string | null;
239
254
  name: string;
240
255
  subject: string;
241
256
  color: string | null;
242
257
  section: string;
258
+ syllabus: string | null;
243
259
  };
244
260
  markScheme: {
245
261
  id: string;
@@ -252,51 +268,61 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
252
268
  } & {
253
269
  type: import(".prisma/client").$Enums.AssignmentType;
254
270
  id: string;
271
+ title: string;
272
+ dueDate: Date;
273
+ maxGrade: number | null;
255
274
  classId: string;
275
+ eventId: string | null;
256
276
  markSchemeId: string | null;
257
277
  gradingBoundaryId: string | null;
258
- title: string;
259
278
  instructions: string;
260
- dueDate: Date;
279
+ weight: number;
280
+ graded: boolean;
281
+ sectionId: string | null;
282
+ template: boolean;
261
283
  createdAt: Date | null;
262
284
  modifiedAt: Date | null;
263
285
  teacherId: string;
264
- sectionId: string | null;
265
- graded: boolean;
266
- maxGrade: number | null;
267
- weight: number;
268
- eventId: string | null;
286
+ inProgress: boolean;
287
+ };
288
+ student: {
289
+ id: string;
290
+ username: string;
269
291
  };
270
292
  attachments: {
271
293
  path: string;
272
294
  type: string;
273
295
  id: string;
274
296
  name: string;
275
- userId: string | null;
276
- assignmentId: string | null;
277
- submissionId: string | null;
278
297
  size: number | null;
279
298
  uploadedAt: Date | null;
299
+ assignmentId: string | null;
300
+ submissionId: string | null;
301
+ userId: string | null;
280
302
  thumbnailId: string | null;
281
303
  annotationId: string | null;
304
+ classDraftId: string | null;
305
+ folderId: string | null;
282
306
  }[];
283
307
  annotations: {
284
308
  path: string;
285
309
  type: string;
286
310
  id: string;
287
311
  name: string;
288
- userId: string | null;
289
- assignmentId: string | null;
290
- submissionId: string | null;
291
312
  size: number | null;
292
313
  uploadedAt: Date | null;
314
+ assignmentId: string | null;
315
+ submissionId: string | null;
316
+ userId: string | null;
293
317
  thumbnailId: string | null;
294
318
  annotationId: string | null;
319
+ classDraftId: string | null;
320
+ folderId: string | null;
295
321
  }[];
296
322
  } & {
297
323
  id: string;
298
- studentId: string;
299
324
  assignmentId: string;
325
+ studentId: string;
300
326
  gradeReceived: number | null;
301
327
  createdAt: Date;
302
328
  modifiedAt: Date;
@@ -306,17 +332,15 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
306
332
  returned: boolean | null;
307
333
  }) | {
308
334
  late: boolean;
309
- student: {
310
- id: string;
311
- username: string;
312
- };
313
335
  assignment: {
314
336
  class: {
315
337
  id: string;
338
+ schoolId: string | null;
316
339
  name: string;
317
340
  subject: string;
318
341
  color: string | null;
319
342
  section: string;
343
+ syllabus: string | null;
320
344
  };
321
345
  markScheme: {
322
346
  id: string;
@@ -329,50 +353,60 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
329
353
  } & {
330
354
  type: import(".prisma/client").$Enums.AssignmentType;
331
355
  id: string;
356
+ title: string;
357
+ dueDate: Date;
358
+ maxGrade: number | null;
332
359
  classId: string;
360
+ eventId: string | null;
333
361
  markSchemeId: string | null;
334
362
  gradingBoundaryId: string | null;
335
- title: string;
336
363
  instructions: string;
337
- dueDate: Date;
364
+ weight: number;
365
+ graded: boolean;
366
+ sectionId: string | null;
367
+ template: boolean;
338
368
  createdAt: Date | null;
339
369
  modifiedAt: Date | null;
340
370
  teacherId: string;
341
- sectionId: string | null;
342
- graded: boolean;
343
- maxGrade: number | null;
344
- weight: number;
345
- eventId: string | null;
371
+ inProgress: boolean;
372
+ };
373
+ student: {
374
+ id: string;
375
+ username: string;
346
376
  };
347
377
  attachments: {
348
378
  path: string;
349
379
  type: string;
350
380
  id: string;
351
381
  name: string;
352
- userId: string | null;
353
- assignmentId: string | null;
354
- submissionId: string | null;
355
382
  size: number | null;
356
383
  uploadedAt: Date | null;
384
+ assignmentId: string | null;
385
+ submissionId: string | null;
386
+ userId: string | null;
357
387
  thumbnailId: string | null;
358
388
  annotationId: string | null;
389
+ classDraftId: string | null;
390
+ folderId: string | null;
359
391
  }[];
360
392
  annotations: {
361
393
  path: string;
362
394
  type: string;
363
395
  id: string;
364
396
  name: string;
365
- userId: string | null;
366
- assignmentId: string | null;
367
- submissionId: string | null;
368
397
  size: number | null;
369
398
  uploadedAt: Date | null;
399
+ assignmentId: string | null;
400
+ submissionId: string | null;
401
+ userId: string | null;
370
402
  thumbnailId: string | null;
371
403
  annotationId: string | null;
404
+ classDraftId: string | null;
405
+ folderId: string | null;
372
406
  }[];
373
407
  id: string;
374
- studentId: string;
375
408
  assignmentId: string;
409
+ studentId: string;
376
410
  gradeReceived: number | null;
377
411
  createdAt: Date;
378
412
  modifiedAt: Date;
@@ -391,17 +425,15 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
391
425
  };
392
426
  output: {
393
427
  late: boolean;
394
- student: {
395
- id: string;
396
- username: string;
397
- };
398
428
  assignment: {
399
429
  class: {
400
430
  id: string;
431
+ schoolId: string | null;
401
432
  name: string;
402
433
  subject: string;
403
434
  color: string | null;
404
435
  section: string;
436
+ syllabus: string | null;
405
437
  };
406
438
  markScheme: {
407
439
  id: string;
@@ -414,50 +446,60 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
414
446
  } & {
415
447
  type: import(".prisma/client").$Enums.AssignmentType;
416
448
  id: string;
449
+ title: string;
450
+ dueDate: Date;
451
+ maxGrade: number | null;
417
452
  classId: string;
453
+ eventId: string | null;
418
454
  markSchemeId: string | null;
419
455
  gradingBoundaryId: string | null;
420
- title: string;
421
456
  instructions: string;
422
- dueDate: Date;
457
+ weight: number;
458
+ graded: boolean;
459
+ sectionId: string | null;
460
+ template: boolean;
423
461
  createdAt: Date | null;
424
462
  modifiedAt: Date | null;
425
463
  teacherId: string;
426
- sectionId: string | null;
427
- graded: boolean;
428
- maxGrade: number | null;
429
- weight: number;
430
- eventId: string | null;
464
+ inProgress: boolean;
465
+ };
466
+ student: {
467
+ id: string;
468
+ username: string;
431
469
  };
432
470
  attachments: {
433
471
  path: string;
434
472
  type: string;
435
473
  id: string;
436
474
  name: string;
437
- userId: string | null;
438
- assignmentId: string | null;
439
- submissionId: string | null;
440
475
  size: number | null;
441
476
  uploadedAt: Date | null;
477
+ assignmentId: string | null;
478
+ submissionId: string | null;
479
+ userId: string | null;
442
480
  thumbnailId: string | null;
443
481
  annotationId: string | null;
482
+ classDraftId: string | null;
483
+ folderId: string | null;
444
484
  }[];
445
485
  annotations: {
446
486
  path: string;
447
487
  type: string;
448
488
  id: string;
449
489
  name: string;
450
- userId: string | null;
451
- assignmentId: string | null;
452
- submissionId: string | null;
453
490
  size: number | null;
454
491
  uploadedAt: Date | null;
492
+ assignmentId: string | null;
493
+ submissionId: string | null;
494
+ userId: string | null;
455
495
  thumbnailId: string | null;
456
496
  annotationId: string | null;
497
+ classDraftId: string | null;
498
+ folderId: string | null;
457
499
  }[];
458
500
  id: string;
459
- studentId: string;
460
501
  assignmentId: string;
502
+ studentId: string;
461
503
  gradeReceived: number | null;
462
504
  createdAt: Date;
463
505
  modifiedAt: Date;
@@ -474,27 +516,26 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
474
516
  classId: string;
475
517
  assignmentId: string;
476
518
  submissionId: string;
519
+ existingFileIds?: string[] | undefined;
477
520
  removedAttachments?: string[] | undefined;
478
521
  submit?: boolean | undefined;
479
522
  newAttachments?: {
480
523
  type: string;
481
524
  name: string;
482
- data: string;
483
525
  size: number;
526
+ data: string;
484
527
  }[] | undefined;
485
528
  };
486
529
  output: {
487
- student: {
488
- id: string;
489
- username: string;
490
- };
491
530
  assignment: {
492
531
  class: {
493
532
  id: string;
533
+ schoolId: string | null;
494
534
  name: string;
495
535
  subject: string;
496
536
  color: string | null;
497
537
  section: string;
538
+ syllabus: string | null;
498
539
  };
499
540
  markScheme: {
500
541
  id: string;
@@ -507,38 +548,46 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
507
548
  } & {
508
549
  type: import(".prisma/client").$Enums.AssignmentType;
509
550
  id: string;
551
+ title: string;
552
+ dueDate: Date;
553
+ maxGrade: number | null;
510
554
  classId: string;
555
+ eventId: string | null;
511
556
  markSchemeId: string | null;
512
557
  gradingBoundaryId: string | null;
513
- title: string;
514
558
  instructions: string;
515
- dueDate: Date;
559
+ weight: number;
560
+ graded: boolean;
561
+ sectionId: string | null;
562
+ template: boolean;
516
563
  createdAt: Date | null;
517
564
  modifiedAt: Date | null;
518
565
  teacherId: string;
519
- sectionId: string | null;
520
- graded: boolean;
521
- maxGrade: number | null;
522
- weight: number;
523
- eventId: string | null;
566
+ inProgress: boolean;
567
+ };
568
+ student: {
569
+ id: string;
570
+ username: string;
524
571
  };
525
572
  attachments: {
526
573
  path: string;
527
574
  type: string;
528
575
  id: string;
529
576
  name: string;
530
- userId: string | null;
531
- assignmentId: string | null;
532
- submissionId: string | null;
533
577
  size: number | null;
534
578
  uploadedAt: Date | null;
579
+ assignmentId: string | null;
580
+ submissionId: string | null;
581
+ userId: string | null;
535
582
  thumbnailId: string | null;
536
583
  annotationId: string | null;
584
+ classDraftId: string | null;
585
+ folderId: string | null;
537
586
  }[];
538
587
  } & {
539
588
  id: string;
540
- studentId: string;
541
589
  assignmentId: string;
590
+ studentId: string;
542
591
  gradeReceived: number | null;
543
592
  createdAt: Date;
544
593
  modifiedAt: Date;
@@ -557,17 +606,15 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
557
606
  };
558
607
  output: {
559
608
  late: boolean;
560
- student: {
561
- id: string;
562
- username: string;
563
- };
564
609
  assignment: {
565
610
  class: {
566
611
  id: string;
612
+ schoolId: string | null;
567
613
  name: string;
568
614
  subject: string;
569
615
  color: string | null;
570
616
  section: string;
617
+ syllabus: string | null;
571
618
  };
572
619
  markScheme: {
573
620
  id: string;
@@ -580,20 +627,26 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
580
627
  } & {
581
628
  type: import(".prisma/client").$Enums.AssignmentType;
582
629
  id: string;
630
+ title: string;
631
+ dueDate: Date;
632
+ maxGrade: number | null;
583
633
  classId: string;
634
+ eventId: string | null;
584
635
  markSchemeId: string | null;
585
636
  gradingBoundaryId: string | null;
586
- title: string;
587
637
  instructions: string;
588
- dueDate: Date;
638
+ weight: number;
639
+ graded: boolean;
640
+ sectionId: string | null;
641
+ template: boolean;
589
642
  createdAt: Date | null;
590
643
  modifiedAt: Date | null;
591
644
  teacherId: string;
592
- sectionId: string | null;
593
- graded: boolean;
594
- maxGrade: number | null;
595
- weight: number;
596
- eventId: string | null;
645
+ inProgress: boolean;
646
+ };
647
+ student: {
648
+ id: string;
649
+ username: string;
597
650
  };
598
651
  attachments: ({
599
652
  thumbnail: {
@@ -601,30 +654,34 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
601
654
  type: string;
602
655
  id: string;
603
656
  name: string;
604
- userId: string | null;
605
- assignmentId: string | null;
606
- submissionId: string | null;
607
657
  size: number | null;
608
658
  uploadedAt: Date | null;
659
+ assignmentId: string | null;
660
+ submissionId: string | null;
661
+ userId: string | null;
609
662
  thumbnailId: string | null;
610
663
  annotationId: string | null;
664
+ classDraftId: string | null;
665
+ folderId: string | null;
611
666
  } | null;
612
667
  } & {
613
668
  path: string;
614
669
  type: string;
615
670
  id: string;
616
671
  name: string;
617
- userId: string | null;
618
- assignmentId: string | null;
619
- submissionId: string | null;
620
672
  size: number | null;
621
673
  uploadedAt: Date | null;
674
+ assignmentId: string | null;
675
+ submissionId: string | null;
676
+ userId: string | null;
622
677
  thumbnailId: string | null;
623
678
  annotationId: string | null;
679
+ classDraftId: string | null;
680
+ folderId: string | null;
624
681
  })[];
625
682
  id: string;
626
- studentId: string;
627
683
  assignmentId: string;
684
+ studentId: string;
628
685
  gradeReceived: number | null;
629
686
  createdAt: Date;
630
687
  modifiedAt: Date;
@@ -642,12 +699,13 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
642
699
  assignmentId: string;
643
700
  submissionId: string;
644
701
  gradeReceived?: number | null | undefined;
702
+ existingFileIds?: string[] | undefined;
645
703
  removedAttachments?: string[] | undefined;
646
704
  newAttachments?: {
647
705
  type: string;
648
706
  name: string;
649
- data: string;
650
707
  size: number;
708
+ data: string;
651
709
  }[] | undefined;
652
710
  return?: boolean | undefined;
653
711
  rubricGrades?: {
@@ -658,17 +716,15 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
658
716
  }[] | undefined;
659
717
  };
660
718
  output: {
661
- student: {
662
- id: string;
663
- username: string;
664
- };
665
719
  assignment: {
666
720
  class: {
667
721
  id: string;
722
+ schoolId: string | null;
668
723
  name: string;
669
724
  subject: string;
670
725
  color: string | null;
671
726
  section: string;
727
+ syllabus: string | null;
672
728
  };
673
729
  markScheme: {
674
730
  id: string;
@@ -681,38 +737,46 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
681
737
  } & {
682
738
  type: import(".prisma/client").$Enums.AssignmentType;
683
739
  id: string;
740
+ title: string;
741
+ dueDate: Date;
742
+ maxGrade: number | null;
684
743
  classId: string;
744
+ eventId: string | null;
685
745
  markSchemeId: string | null;
686
746
  gradingBoundaryId: string | null;
687
- title: string;
688
747
  instructions: string;
689
- dueDate: Date;
748
+ weight: number;
749
+ graded: boolean;
750
+ sectionId: string | null;
751
+ template: boolean;
690
752
  createdAt: Date | null;
691
753
  modifiedAt: Date | null;
692
754
  teacherId: string;
693
- sectionId: string | null;
694
- graded: boolean;
695
- maxGrade: number | null;
696
- weight: number;
697
- eventId: string | null;
755
+ inProgress: boolean;
756
+ };
757
+ student: {
758
+ id: string;
759
+ username: string;
698
760
  };
699
761
  attachments: {
700
762
  path: string;
701
763
  type: string;
702
764
  id: string;
703
765
  name: string;
704
- userId: string | null;
705
- assignmentId: string | null;
706
- submissionId: string | null;
707
766
  size: number | null;
708
767
  uploadedAt: Date | null;
768
+ assignmentId: string | null;
769
+ submissionId: string | null;
770
+ userId: string | null;
709
771
  thumbnailId: string | null;
710
772
  annotationId: string | null;
773
+ classDraftId: string | null;
774
+ folderId: string | null;
711
775
  }[];
712
776
  } & {
713
777
  id: string;
714
- studentId: string;
715
778
  assignmentId: string;
779
+ studentId: string;
716
780
  gradeReceived: number | null;
717
781
  createdAt: Date;
718
782
  modifiedAt: Date;
@@ -754,20 +818,22 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
754
818
  } & {
755
819
  type: import(".prisma/client").$Enums.AssignmentType;
756
820
  id: string;
821
+ title: string;
822
+ dueDate: Date;
823
+ maxGrade: number | null;
757
824
  classId: string;
825
+ eventId: string | null;
758
826
  markSchemeId: string | null;
759
827
  gradingBoundaryId: string | null;
760
- title: string;
761
828
  instructions: string;
762
- dueDate: Date;
829
+ weight: number;
830
+ graded: boolean;
831
+ sectionId: string | null;
832
+ template: boolean;
763
833
  createdAt: Date | null;
764
834
  modifiedAt: Date | null;
765
835
  teacherId: string;
766
- sectionId: string | null;
767
- graded: boolean;
768
- maxGrade: number | null;
769
- weight: number;
770
- eventId: string | null;
836
+ inProgress: boolean;
771
837
  };
772
838
  };
773
839
  meta: object;
@@ -802,20 +868,22 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
802
868
  } & {
803
869
  type: import(".prisma/client").$Enums.AssignmentType;
804
870
  id: string;
871
+ title: string;
872
+ dueDate: Date;
873
+ maxGrade: number | null;
805
874
  classId: string;
875
+ eventId: string | null;
806
876
  markSchemeId: string | null;
807
877
  gradingBoundaryId: string | null;
808
- title: string;
809
878
  instructions: string;
810
- dueDate: Date;
879
+ weight: number;
880
+ graded: boolean;
881
+ sectionId: string | null;
882
+ template: boolean;
811
883
  createdAt: Date | null;
812
884
  modifiedAt: Date | null;
813
885
  teacherId: string;
814
- sectionId: string | null;
815
- graded: boolean;
816
- maxGrade: number | null;
817
- weight: number;
818
- eventId: string | null;
886
+ inProgress: boolean;
819
887
  };
820
888
  };
821
889
  meta: object;
@@ -830,10 +898,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
830
898
  events: {
831
899
  id: string;
832
900
  name: string | null;
833
- remarks: string | null;
901
+ location: string | null;
834
902
  startTime: Date;
835
903
  endTime: Date;
836
- location: string | null;
904
+ remarks: string | null;
837
905
  }[];
838
906
  };
839
907
  meta: object;
@@ -849,8 +917,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
849
917
  name: string;
850
918
  };
851
919
  title: string;
852
- graded: boolean;
853
920
  maxGrade: number | null;
921
+ graded: boolean;
854
922
  }[];
855
923
  meta: object;
856
924
  }>;
@@ -873,31 +941,35 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
873
941
  email: string;
874
942
  password: string;
875
943
  verified: boolean;
944
+ role: import(".prisma/client").$Enums.UserRole;
876
945
  profileId: string | null;
946
+ schoolId: string | null;
877
947
  };
878
948
  attachments: {
879
949
  path: string;
880
950
  type: string;
881
951
  id: string;
882
952
  name: string;
883
- userId: string | null;
884
- assignmentId: string | null;
885
- submissionId: string | null;
886
953
  size: number | null;
887
954
  uploadedAt: Date | null;
955
+ assignmentId: string | null;
956
+ submissionId: string | null;
957
+ userId: string | null;
888
958
  thumbnailId: string | null;
889
959
  annotationId: string | null;
960
+ classDraftId: string | null;
961
+ folderId: string | null;
890
962
  }[];
891
963
  eventAttached: {
892
964
  id: string;
893
965
  name: string | null;
894
966
  color: string | null;
895
- classId: string | null;
896
- userId: string | null;
897
- remarks: string | null;
967
+ location: string | null;
898
968
  startTime: Date;
899
969
  endTime: Date;
900
- location: string | null;
970
+ remarks: string | null;
971
+ classId: string | null;
972
+ userId: string | null;
901
973
  } | null;
902
974
  markScheme: {
903
975
  id: string;
@@ -907,20 +979,22 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
907
979
  } & {
908
980
  type: import(".prisma/client").$Enums.AssignmentType;
909
981
  id: string;
982
+ title: string;
983
+ dueDate: Date;
984
+ maxGrade: number | null;
910
985
  classId: string;
986
+ eventId: string | null;
911
987
  markSchemeId: string | null;
912
988
  gradingBoundaryId: string | null;
913
- title: string;
914
989
  instructions: string;
915
- dueDate: Date;
990
+ weight: number;
991
+ graded: boolean;
992
+ sectionId: string | null;
993
+ template: boolean;
916
994
  createdAt: Date | null;
917
995
  modifiedAt: Date | null;
918
996
  teacherId: string;
919
- sectionId: string | null;
920
- graded: boolean;
921
- maxGrade: number | null;
922
- weight: number;
923
- eventId: string | null;
997
+ inProgress: boolean;
924
998
  };
925
999
  meta: object;
926
1000
  }>;
@@ -942,31 +1016,35 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
942
1016
  email: string;
943
1017
  password: string;
944
1018
  verified: boolean;
1019
+ role: import(".prisma/client").$Enums.UserRole;
945
1020
  profileId: string | null;
1021
+ schoolId: string | null;
946
1022
  };
947
1023
  attachments: {
948
1024
  path: string;
949
1025
  type: string;
950
1026
  id: string;
951
1027
  name: string;
952
- userId: string | null;
953
- assignmentId: string | null;
954
- submissionId: string | null;
955
1028
  size: number | null;
956
1029
  uploadedAt: Date | null;
1030
+ assignmentId: string | null;
1031
+ submissionId: string | null;
1032
+ userId: string | null;
957
1033
  thumbnailId: string | null;
958
1034
  annotationId: string | null;
1035
+ classDraftId: string | null;
1036
+ folderId: string | null;
959
1037
  }[];
960
1038
  eventAttached: {
961
1039
  id: string;
962
1040
  name: string | null;
963
1041
  color: string | null;
964
- classId: string | null;
965
- userId: string | null;
966
- remarks: string | null;
1042
+ location: string | null;
967
1043
  startTime: Date;
968
1044
  endTime: Date;
969
- location: string | null;
1045
+ remarks: string | null;
1046
+ classId: string | null;
1047
+ userId: string | null;
970
1048
  } | null;
971
1049
  markScheme: {
972
1050
  id: string;
@@ -976,20 +1054,22 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
976
1054
  } & {
977
1055
  type: import(".prisma/client").$Enums.AssignmentType;
978
1056
  id: string;
1057
+ title: string;
1058
+ dueDate: Date;
1059
+ maxGrade: number | null;
979
1060
  classId: string;
1061
+ eventId: string | null;
980
1062
  markSchemeId: string | null;
981
1063
  gradingBoundaryId: string | null;
982
- title: string;
983
1064
  instructions: string;
984
- dueDate: Date;
1065
+ weight: number;
1066
+ graded: boolean;
1067
+ sectionId: string | null;
1068
+ template: boolean;
985
1069
  createdAt: Date | null;
986
1070
  modifiedAt: Date | null;
987
1071
  teacherId: string;
988
- sectionId: string | null;
989
- graded: boolean;
990
- maxGrade: number | null;
991
- weight: number;
992
- eventId: string | null;
1072
+ inProgress: boolean;
993
1073
  };
994
1074
  meta: object;
995
1075
  }>;
@@ -1012,31 +1092,35 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
1012
1092
  email: string;
1013
1093
  password: string;
1014
1094
  verified: boolean;
1095
+ role: import(".prisma/client").$Enums.UserRole;
1015
1096
  profileId: string | null;
1097
+ schoolId: string | null;
1016
1098
  };
1017
1099
  attachments: {
1018
1100
  path: string;
1019
1101
  type: string;
1020
1102
  id: string;
1021
1103
  name: string;
1022
- userId: string | null;
1023
- assignmentId: string | null;
1024
- submissionId: string | null;
1025
1104
  size: number | null;
1026
1105
  uploadedAt: Date | null;
1106
+ assignmentId: string | null;
1107
+ submissionId: string | null;
1108
+ userId: string | null;
1027
1109
  thumbnailId: string | null;
1028
1110
  annotationId: string | null;
1111
+ classDraftId: string | null;
1112
+ folderId: string | null;
1029
1113
  }[];
1030
1114
  eventAttached: {
1031
1115
  id: string;
1032
1116
  name: string | null;
1033
1117
  color: string | null;
1034
- classId: string | null;
1035
- userId: string | null;
1036
- remarks: string | null;
1118
+ location: string | null;
1037
1119
  startTime: Date;
1038
1120
  endTime: Date;
1039
- location: string | null;
1121
+ remarks: string | null;
1122
+ classId: string | null;
1123
+ userId: string | null;
1040
1124
  } | null;
1041
1125
  gradingBoundary: {
1042
1126
  id: string;
@@ -1046,20 +1130,22 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
1046
1130
  } & {
1047
1131
  type: import(".prisma/client").$Enums.AssignmentType;
1048
1132
  id: string;
1133
+ title: string;
1134
+ dueDate: Date;
1135
+ maxGrade: number | null;
1049
1136
  classId: string;
1137
+ eventId: string | null;
1050
1138
  markSchemeId: string | null;
1051
1139
  gradingBoundaryId: string | null;
1052
- title: string;
1053
1140
  instructions: string;
1054
- dueDate: Date;
1141
+ weight: number;
1142
+ graded: boolean;
1143
+ sectionId: string | null;
1144
+ template: boolean;
1055
1145
  createdAt: Date | null;
1056
1146
  modifiedAt: Date | null;
1057
1147
  teacherId: string;
1058
- sectionId: string | null;
1059
- graded: boolean;
1060
- maxGrade: number | null;
1061
- weight: number;
1062
- eventId: string | null;
1148
+ inProgress: boolean;
1063
1149
  };
1064
1150
  meta: object;
1065
1151
  }>;