@studious-lms/server 1.20.0 → 1.22.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 (117) hide show
  1. package/Dockerfile +5 -2
  2. package/dist/models/agenda.d.ts +6 -0
  3. package/dist/models/agenda.d.ts.map +1 -1
  4. package/dist/models/announcement.d.ts +2 -0
  5. package/dist/models/announcement.d.ts.map +1 -1
  6. package/dist/models/assignment.d.ts +27 -0
  7. package/dist/models/assignment.d.ts.map +1 -1
  8. package/dist/models/auth.d.ts +4 -0
  9. package/dist/models/auth.d.ts.map +1 -1
  10. package/dist/models/class.d.ts +14 -0
  11. package/dist/models/class.d.ts.map +1 -1
  12. package/dist/models/event.d.ts +11 -0
  13. package/dist/models/event.d.ts.map +1 -1
  14. package/dist/models/file.d.ts +19 -0
  15. package/dist/models/file.d.ts.map +1 -1
  16. package/dist/models/folder.d.ts +4 -0
  17. package/dist/models/folder.d.ts.map +1 -1
  18. package/dist/models/gradebook.d.ts +180 -0
  19. package/dist/models/gradebook.d.ts.map +1 -0
  20. package/dist/models/gradebook.js +88 -0
  21. package/dist/models/gradebook.js.map +1 -0
  22. package/dist/models/labChat.d.ts +4 -0
  23. package/dist/models/labChat.d.ts.map +1 -1
  24. package/dist/models/newtonChat.d.ts +2 -0
  25. package/dist/models/newtonChat.d.ts.map +1 -1
  26. package/dist/models/school.d.ts +2 -0
  27. package/dist/models/school.d.ts.map +1 -1
  28. package/dist/models/section.d.ts +3 -0
  29. package/dist/models/section.d.ts.map +1 -1
  30. package/dist/models/worksheet.d.ts +6 -0
  31. package/dist/models/worksheet.d.ts.map +1 -1
  32. package/dist/routers/_app.d.ts +1359 -37
  33. package/dist/routers/_app.d.ts.map +1 -1
  34. package/dist/routers/_app.js +4 -2
  35. package/dist/routers/_app.js.map +1 -1
  36. package/dist/routers/admin.d.ts +164 -0
  37. package/dist/routers/admin.d.ts.map +1 -1
  38. package/dist/routers/admin.js +23 -4
  39. package/dist/routers/admin.js.map +1 -1
  40. package/dist/routers/agenda.d.ts +6 -0
  41. package/dist/routers/agenda.d.ts.map +1 -1
  42. package/dist/routers/assignment.d.ts +102 -1
  43. package/dist/routers/assignment.d.ts.map +1 -1
  44. package/dist/routers/assignment.js +180 -2
  45. package/dist/routers/assignment.js.map +1 -1
  46. package/dist/routers/class.d.ts +17 -0
  47. package/dist/routers/class.d.ts.map +1 -1
  48. package/dist/routers/event.d.ts +4 -0
  49. package/dist/routers/event.d.ts.map +1 -1
  50. package/dist/routers/file.d.ts +66 -0
  51. package/dist/routers/file.d.ts.map +1 -1
  52. package/dist/routers/file.js +111 -2
  53. package/dist/routers/file.js.map +1 -1
  54. package/dist/routers/gradebook.d.ts +299 -0
  55. package/dist/routers/gradebook.d.ts.map +1 -0
  56. package/dist/routers/gradebook.js +107 -0
  57. package/dist/routers/gradebook.js.map +1 -0
  58. package/dist/routers/school.d.ts +4 -0
  59. package/dist/routers/school.d.ts.map +1 -1
  60. package/dist/routers/section.d.ts +1 -1
  61. package/dist/routers/worksheet.d.ts +3 -1
  62. package/dist/routers/worksheet.d.ts.map +1 -1
  63. package/dist/services/adminInstitution.d.ts +51 -0
  64. package/dist/services/adminInstitution.d.ts.map +1 -1
  65. package/dist/services/adminInstitution.js +52 -2
  66. package/dist/services/adminInstitution.js.map +1 -1
  67. package/dist/services/adminMetrics.d.ts +17 -0
  68. package/dist/services/adminMetrics.d.ts.map +1 -0
  69. package/dist/services/adminMetrics.js +37 -0
  70. package/dist/services/adminMetrics.js.map +1 -0
  71. package/dist/services/adminRunJob.d.ts +9 -0
  72. package/dist/services/adminRunJob.d.ts.map +1 -1
  73. package/dist/services/adminRunJob.js +18 -2
  74. package/dist/services/adminRunJob.js.map +1 -1
  75. package/dist/services/adminUser.d.ts +67 -0
  76. package/dist/services/adminUser.d.ts.map +1 -0
  77. package/dist/services/adminUser.js +87 -0
  78. package/dist/services/adminUser.js.map +1 -0
  79. package/dist/services/agenda.d.ts +6 -0
  80. package/dist/services/agenda.d.ts.map +1 -1
  81. package/dist/services/assignment.d.ts +27 -0
  82. package/dist/services/assignment.d.ts.map +1 -1
  83. package/dist/services/class.d.ts +17 -0
  84. package/dist/services/class.d.ts.map +1 -1
  85. package/dist/services/event.d.ts +4 -0
  86. package/dist/services/event.d.ts.map +1 -1
  87. package/dist/services/gradeCalculation.d.ts +70 -0
  88. package/dist/services/gradeCalculation.d.ts.map +1 -0
  89. package/dist/services/gradeCalculation.js +148 -0
  90. package/dist/services/gradeCalculation.js.map +1 -0
  91. package/dist/services/gradebook.d.ts +197 -0
  92. package/dist/services/gradebook.d.ts.map +1 -0
  93. package/dist/services/gradebook.js +263 -0
  94. package/dist/services/gradebook.js.map +1 -0
  95. package/dist/services/school.d.ts +4 -0
  96. package/dist/services/school.d.ts.map +1 -1
  97. package/dist/services/worksheet.d.ts +2 -0
  98. package/dist/services/worksheet.d.ts.map +1 -1
  99. package/docker-entrypoint.sh +7 -0
  100. package/package.json +1 -1
  101. package/prisma/migrations/20260708011456_add_file_annotations/migration.sql +35 -0
  102. package/prisma/migrations/20260708011629_add_gradebook_categories_columns_policies/migration.sql +78 -0
  103. package/prisma/migrations/20260723142314_make_file_annotation_submission_optional/migration.sql +2 -0
  104. package/prisma/schema.prisma +130 -38
  105. package/src/models/gradebook.ts +91 -0
  106. package/src/routers/_app.ts +2 -0
  107. package/src/routers/admin.ts +28 -0
  108. package/src/routers/assignment.ts +204 -0
  109. package/src/routers/file.ts +128 -0
  110. package/src/routers/gradebook.ts +173 -0
  111. package/src/services/adminInstitution.ts +52 -0
  112. package/src/services/adminMetrics.ts +46 -0
  113. package/src/services/adminRunJob.ts +24 -0
  114. package/src/services/adminUser.ts +93 -0
  115. package/src/services/gradeCalculation.ts +253 -0
  116. package/src/services/gradebook.ts +383 -0
  117. package/tests/unit/services/gradeCalculation.test.ts +206 -0
@@ -267,6 +267,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
267
267
  discussionsEnabled: boolean;
268
268
  studentsCanCreateDiscussions: boolean;
269
269
  studentsCanReply: boolean;
270
+ treatMissingAsZero: boolean;
271
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
270
272
  };
271
273
  };
272
274
  meta: object;
@@ -347,6 +349,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
347
349
  discussionsEnabled: boolean;
348
350
  studentsCanCreateDiscussions: boolean;
349
351
  studentsCanReply: boolean;
352
+ treatMissingAsZero: boolean;
353
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
350
354
  };
351
355
  meta: object;
352
356
  }>;
@@ -404,6 +408,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
404
408
  discussionsEnabled: boolean;
405
409
  studentsCanCreateDiscussions: boolean;
406
410
  studentsCanReply: boolean;
411
+ treatMissingAsZero: boolean;
412
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
407
413
  };
408
414
  user: {
409
415
  type: "student" | "teacher";
@@ -433,6 +439,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
433
439
  discussionsEnabled: boolean;
434
440
  studentsCanCreateDiscussions: boolean;
435
441
  studentsCanReply: boolean;
442
+ treatMissingAsZero: boolean;
443
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
436
444
  };
437
445
  removedUserId: string;
438
446
  };
@@ -735,6 +743,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
735
743
  discussionsEnabled: boolean;
736
744
  studentsCanCreateDiscussions: boolean;
737
745
  studentsCanReply: boolean;
746
+ treatMissingAsZero: boolean;
747
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
738
748
  };
739
749
  meta: object;
740
750
  }>;
@@ -768,6 +778,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
768
778
  markSchemeId: string | null;
769
779
  order: number | null;
770
780
  gradingBoundaryId: string | null;
781
+ gradeCategoryId: string | null;
771
782
  }[];
772
783
  meta: object;
773
784
  }>;
@@ -811,6 +822,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
811
822
  markSchemeId: string | null;
812
823
  order: number | null;
813
824
  gradingBoundaryId: string | null;
825
+ gradeCategoryId: string | null;
814
826
  };
815
827
  meta: object;
816
828
  }>;
@@ -854,6 +866,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
854
866
  markSchemeId: string | null;
855
867
  order: number | null;
856
868
  gradingBoundaryId: string | null;
869
+ gradeCategoryId: string | null;
857
870
  };
858
871
  meta: object;
859
872
  }>;
@@ -888,6 +901,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
888
901
  markSchemeId: string | null;
889
902
  order: number | null;
890
903
  gradingBoundaryId: string | null;
904
+ gradeCategoryId: string | null;
891
905
  };
892
906
  meta: object;
893
907
  }>;
@@ -926,6 +940,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
926
940
  markSchemeId: string | null;
927
941
  order: number | null;
928
942
  gradingBoundaryId: string | null;
943
+ gradeCategoryId: string | null;
929
944
  };
930
945
  meta: object;
931
946
  }>;
@@ -1077,6 +1092,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1077
1092
  discussionsEnabled: boolean;
1078
1093
  studentsCanCreateDiscussions: boolean;
1079
1094
  studentsCanReply: boolean;
1095
+ treatMissingAsZero: boolean;
1096
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
1080
1097
  };
1081
1098
  meta: object;
1082
1099
  }>;
@@ -1521,8 +1538,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1521
1538
  input: {
1522
1539
  [x: string]: unknown;
1523
1540
  classId: string;
1524
- movedId: string;
1525
1541
  position: "end" | "start" | "before" | "after";
1542
+ movedId: string;
1526
1543
  targetId?: string | undefined;
1527
1544
  };
1528
1545
  output: {
@@ -1550,6 +1567,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1550
1567
  markSchemeId: string | null;
1551
1568
  order: number | null;
1552
1569
  gradingBoundaryId: string | null;
1570
+ gradeCategoryId: string | null;
1553
1571
  } | null;
1554
1572
  meta: object;
1555
1573
  }>;
@@ -1594,6 +1612,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1594
1612
  markSchemeId: string | null;
1595
1613
  order: number | null;
1596
1614
  gradingBoundaryId: string | null;
1615
+ gradeCategoryId: string | null;
1597
1616
  } | null;
1598
1617
  meta: object;
1599
1618
  }>;
@@ -1689,6 +1708,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1689
1708
  markSchemeId: string | null;
1690
1709
  order: number | null;
1691
1710
  gradingBoundaryId: string | null;
1711
+ gradeCategoryId: string | null;
1692
1712
  };
1693
1713
  meta: object;
1694
1714
  }>;
@@ -1736,6 +1756,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1736
1756
  discussionsEnabled: boolean;
1737
1757
  studentsCanCreateDiscussions: boolean;
1738
1758
  studentsCanReply: boolean;
1759
+ treatMissingAsZero: boolean;
1760
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
1739
1761
  };
1740
1762
  section: {
1741
1763
  id: string;
@@ -1904,6 +1926,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1904
1926
  markSchemeId: string | null;
1905
1927
  order: number | null;
1906
1928
  gradingBoundaryId: string | null;
1929
+ gradeCategoryId: string | null;
1907
1930
  };
1908
1931
  meta: object;
1909
1932
  }>;
@@ -1929,6 +1952,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1929
1952
  discussionsEnabled: boolean;
1930
1953
  studentsCanCreateDiscussions: boolean;
1931
1954
  studentsCanReply: boolean;
1955
+ treatMissingAsZero: boolean;
1956
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
1932
1957
  };
1933
1958
  markScheme: {
1934
1959
  id: string;
@@ -1967,6 +1992,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1967
1992
  markSchemeId: string | null;
1968
1993
  order: number | null;
1969
1994
  gradingBoundaryId: string | null;
1995
+ gradeCategoryId: string | null;
1970
1996
  };
1971
1997
  attachments: {
1972
1998
  path: string;
@@ -2072,6 +2098,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2072
2098
  discussionsEnabled: boolean;
2073
2099
  studentsCanCreateDiscussions: boolean;
2074
2100
  studentsCanReply: boolean;
2101
+ treatMissingAsZero: boolean;
2102
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
2075
2103
  };
2076
2104
  markScheme: {
2077
2105
  id: string;
@@ -2110,6 +2138,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2110
2138
  markSchemeId: string | null;
2111
2139
  order: number | null;
2112
2140
  gradingBoundaryId: string | null;
2141
+ gradeCategoryId: string | null;
2113
2142
  };
2114
2143
  attachments: {
2115
2144
  path: string;
@@ -2236,6 +2265,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2236
2265
  discussionsEnabled: boolean;
2237
2266
  studentsCanCreateDiscussions: boolean;
2238
2267
  studentsCanReply: boolean;
2268
+ treatMissingAsZero: boolean;
2269
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
2239
2270
  };
2240
2271
  markScheme: {
2241
2272
  id: string;
@@ -2270,6 +2301,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2270
2301
  markSchemeId: string | null;
2271
2302
  order: number | null;
2272
2303
  gradingBoundaryId: string | null;
2304
+ gradeCategoryId: string | null;
2273
2305
  };
2274
2306
  attachments: {
2275
2307
  path: string;
@@ -2346,6 +2378,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2346
2378
  discussionsEnabled: boolean;
2347
2379
  studentsCanCreateDiscussions: boolean;
2348
2380
  studentsCanReply: boolean;
2381
+ treatMissingAsZero: boolean;
2382
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
2349
2383
  };
2350
2384
  markScheme: {
2351
2385
  id: string;
@@ -2380,6 +2414,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2380
2414
  markSchemeId: string | null;
2381
2415
  order: number | null;
2382
2416
  gradingBoundaryId: string | null;
2417
+ gradeCategoryId: string | null;
2383
2418
  };
2384
2419
  attachments: ({
2385
2420
  thumbnail: {
@@ -2737,6 +2772,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2737
2772
  discussionsEnabled: boolean;
2738
2773
  studentsCanCreateDiscussions: boolean;
2739
2774
  studentsCanReply: boolean;
2775
+ treatMissingAsZero: boolean;
2776
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
2740
2777
  };
2741
2778
  markScheme: {
2742
2779
  id: string;
@@ -2771,6 +2808,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2771
2808
  markSchemeId: string | null;
2772
2809
  order: number | null;
2773
2810
  gradingBoundaryId: string | null;
2811
+ gradeCategoryId: string | null;
2774
2812
  };
2775
2813
  attachments: ({
2776
2814
  thumbnail: {
@@ -2976,6 +3014,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2976
3014
  markSchemeId: string | null;
2977
3015
  order: number | null;
2978
3016
  gradingBoundaryId: string | null;
3017
+ gradeCategoryId: string | null;
2979
3018
  };
2980
3019
  };
2981
3020
  meta: object;
@@ -3033,6 +3072,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3033
3072
  markSchemeId: string | null;
3034
3073
  order: number | null;
3035
3074
  gradingBoundaryId: string | null;
3075
+ gradeCategoryId: string | null;
3036
3076
  };
3037
3077
  };
3038
3078
  meta: object;
@@ -3170,6 +3210,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3170
3210
  markSchemeId: string | null;
3171
3211
  order: number | null;
3172
3212
  gradingBoundaryId: string | null;
3213
+ gradeCategoryId: string | null;
3173
3214
  };
3174
3215
  meta: object;
3175
3216
  }>;
@@ -3270,6 +3311,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3270
3311
  markSchemeId: string | null;
3271
3312
  order: number | null;
3272
3313
  gradingBoundaryId: string | null;
3314
+ gradeCategoryId: string | null;
3273
3315
  };
3274
3316
  meta: object;
3275
3317
  }>;
@@ -3371,6 +3413,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3371
3413
  markSchemeId: string | null;
3372
3414
  order: number | null;
3373
3415
  gradingBoundaryId: string | null;
3416
+ gradeCategoryId: string | null;
3374
3417
  };
3375
3418
  meta: object;
3376
3419
  }>;
@@ -3471,6 +3514,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3471
3514
  markSchemeId: string | null;
3472
3515
  order: number | null;
3473
3516
  gradingBoundaryId: string | null;
3517
+ gradeCategoryId: string | null;
3474
3518
  };
3475
3519
  meta: object;
3476
3520
  }>;
@@ -3567,6 +3611,80 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3567
3611
  };
3568
3612
  meta: object;
3569
3613
  }>;
3614
+ listFileAnnotations: import("@trpc/server").TRPCQueryProcedure<{
3615
+ input: {
3616
+ [x: string]: unknown;
3617
+ classId: string;
3618
+ submissionId: string;
3619
+ fileId: string;
3620
+ };
3621
+ output: {
3622
+ annotations: ({
3623
+ author: {
3624
+ id: string;
3625
+ username: string;
3626
+ profile: {
3627
+ displayName: string | null;
3628
+ } | null;
3629
+ };
3630
+ } & {
3631
+ type: import(".prisma/client").$Enums.FileAnnotationType;
3632
+ id: string;
3633
+ createdAt: Date;
3634
+ updatedAt: Date;
3635
+ color: string | null;
3636
+ submissionId: string | null;
3637
+ text: string | null;
3638
+ authorId: string;
3639
+ fileId: string;
3640
+ page: number;
3641
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
3642
+ })[];
3643
+ };
3644
+ meta: object;
3645
+ }>;
3646
+ upsertFileAnnotation: import("@trpc/server").TRPCMutationProcedure<{
3647
+ input: {
3648
+ [x: string]: unknown;
3649
+ classId: string;
3650
+ type: "HIGHLIGHT" | "INK" | "COMMENT" | "TEXT";
3651
+ submissionId: string;
3652
+ fileId: string;
3653
+ page: number;
3654
+ geometry: Record<string, unknown>;
3655
+ id?: string | undefined;
3656
+ color?: string | undefined;
3657
+ text?: string | undefined;
3658
+ };
3659
+ output: {
3660
+ annotation: {
3661
+ type: import(".prisma/client").$Enums.FileAnnotationType;
3662
+ id: string;
3663
+ createdAt: Date;
3664
+ updatedAt: Date;
3665
+ color: string | null;
3666
+ submissionId: string | null;
3667
+ text: string | null;
3668
+ authorId: string;
3669
+ fileId: string;
3670
+ page: number;
3671
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
3672
+ };
3673
+ };
3674
+ meta: object;
3675
+ }>;
3676
+ deleteFileAnnotation: import("@trpc/server").TRPCMutationProcedure<{
3677
+ input: {
3678
+ [x: string]: unknown;
3679
+ classId: string;
3680
+ id: string;
3681
+ submissionId: string;
3682
+ };
3683
+ output: {
3684
+ success: boolean;
3685
+ };
3686
+ meta: object;
3687
+ }>;
3570
3688
  updateUploadProgress: import("@trpc/server").TRPCMutationProcedure<{
3571
3689
  input: {
3572
3690
  progress: number;
@@ -3805,8 +3923,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3805
3923
  input: {
3806
3924
  [x: string]: unknown;
3807
3925
  classId: string;
3808
- movedId: string;
3809
3926
  position: "end" | "start" | "before" | "after";
3927
+ movedId: string;
3810
3928
  targetId?: string | undefined;
3811
3929
  };
3812
3930
  output: {
@@ -4051,6 +4169,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4051
4169
  discussionsEnabled: boolean;
4052
4170
  studentsCanCreateDiscussions: boolean;
4053
4171
  studentsCanReply: boolean;
4172
+ treatMissingAsZero: boolean;
4173
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
4054
4174
  }) | null;
4055
4175
  assignmentsAttached: {
4056
4176
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -4200,6 +4320,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4200
4320
  markSchemeId: string | null;
4201
4321
  order: number | null;
4202
4322
  gradingBoundaryId: string | null;
4323
+ gradeCategoryId: string | null;
4203
4324
  };
4204
4325
  };
4205
4326
  meta: object;
@@ -4249,6 +4370,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4249
4370
  markSchemeId: string | null;
4250
4371
  order: number | null;
4251
4372
  gradingBoundaryId: string | null;
4373
+ gradeCategoryId: string | null;
4252
4374
  };
4253
4375
  };
4254
4376
  meta: object;
@@ -4445,6 +4567,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4445
4567
  discussionsEnabled: boolean;
4446
4568
  studentsCanCreateDiscussions: boolean;
4447
4569
  studentsCanReply: boolean;
4570
+ treatMissingAsZero: boolean;
4571
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
4448
4572
  } | null;
4449
4573
  assignmentsAttached: {
4450
4574
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -4471,6 +4595,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4471
4595
  markSchemeId: string | null;
4472
4596
  order: number | null;
4473
4597
  gradingBoundaryId: string | null;
4598
+ gradeCategoryId: string | null;
4474
4599
  }[];
4475
4600
  } & {
4476
4601
  id: string;
@@ -4497,6 +4622,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4497
4622
  discussionsEnabled: boolean;
4498
4623
  studentsCanCreateDiscussions: boolean;
4499
4624
  studentsCanReply: boolean;
4625
+ treatMissingAsZero: boolean;
4626
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
4500
4627
  } | null;
4501
4628
  assignmentsAttached: {
4502
4629
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -4523,6 +4650,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4523
4650
  markSchemeId: string | null;
4524
4651
  order: number | null;
4525
4652
  gradingBoundaryId: string | null;
4653
+ gradeCategoryId: string | null;
4526
4654
  }[];
4527
4655
  } & {
4528
4656
  id: string;
@@ -4659,6 +4787,72 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4659
4787
  };
4660
4788
  meta: object;
4661
4789
  }>;
4790
+ listAnnotations: import("@trpc/server").TRPCQueryProcedure<{
4791
+ input: {
4792
+ fileId: string;
4793
+ };
4794
+ output: {
4795
+ annotations: ({
4796
+ author: {
4797
+ id: string;
4798
+ username: string;
4799
+ profile: {
4800
+ displayName: string | null;
4801
+ } | null;
4802
+ };
4803
+ } & {
4804
+ type: import(".prisma/client").$Enums.FileAnnotationType;
4805
+ id: string;
4806
+ createdAt: Date;
4807
+ updatedAt: Date;
4808
+ color: string | null;
4809
+ submissionId: string | null;
4810
+ text: string | null;
4811
+ authorId: string;
4812
+ fileId: string;
4813
+ page: number;
4814
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
4815
+ })[];
4816
+ };
4817
+ meta: object;
4818
+ }>;
4819
+ upsertAnnotation: import("@trpc/server").TRPCMutationProcedure<{
4820
+ input: {
4821
+ type: "HIGHLIGHT" | "INK" | "COMMENT" | "TEXT";
4822
+ fileId: string;
4823
+ page: number;
4824
+ geometry: Record<string, unknown>;
4825
+ id?: string | undefined;
4826
+ color?: string | undefined;
4827
+ text?: string | undefined;
4828
+ };
4829
+ output: {
4830
+ annotation: {
4831
+ type: import(".prisma/client").$Enums.FileAnnotationType;
4832
+ id: string;
4833
+ createdAt: Date;
4834
+ updatedAt: Date;
4835
+ color: string | null;
4836
+ submissionId: string | null;
4837
+ text: string | null;
4838
+ authorId: string;
4839
+ fileId: string;
4840
+ page: number;
4841
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
4842
+ };
4843
+ };
4844
+ meta: object;
4845
+ }>;
4846
+ deleteAnnotation: import("@trpc/server").TRPCMutationProcedure<{
4847
+ input: {
4848
+ id: string;
4849
+ fileId: string;
4850
+ };
4851
+ output: {
4852
+ success: boolean;
4853
+ };
4854
+ meta: object;
4855
+ }>;
4662
4856
  }>>;
4663
4857
  folder: import("@trpc/server").TRPCBuiltRouter<{
4664
4858
  ctx: import("../trpc.js").Context;
@@ -5944,6 +6138,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5944
6138
  discussionsEnabled: boolean;
5945
6139
  studentsCanCreateDiscussions: boolean;
5946
6140
  studentsCanReply: boolean;
6141
+ treatMissingAsZero: boolean;
6142
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
5947
6143
  } | null;
5948
6144
  tags: {
5949
6145
  id: string;
@@ -6180,8 +6376,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
6180
6376
  reorderQuestions: import("@trpc/server").TRPCMutationProcedure<{
6181
6377
  input: {
6182
6378
  worksheetId: string;
6183
- movedId: string;
6184
6379
  position: "before" | "after";
6380
+ movedId: string;
6185
6381
  targetId: string;
6186
6382
  };
6187
6383
  output: {
@@ -7346,6 +7542,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7346
7542
  discussionsEnabled: boolean;
7347
7543
  studentsCanCreateDiscussions: boolean;
7348
7544
  studentsCanReply: boolean;
7545
+ treatMissingAsZero: boolean;
7546
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
7349
7547
  })[];
7350
7548
  };
7351
7549
  meta: object;
@@ -7397,6 +7595,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7397
7595
  discussionsEnabled: boolean;
7398
7596
  studentsCanCreateDiscussions: boolean;
7399
7597
  studentsCanReply: boolean;
7598
+ treatMissingAsZero: boolean;
7599
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
7400
7600
  };
7401
7601
  };
7402
7602
  meta: object;
@@ -8955,6 +9155,26 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
8955
9155
  };
8956
9156
  transformer: false;
8957
9157
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9158
+ getOverviewMetrics: import("@trpc/server").TRPCQueryProcedure<{
9159
+ input: void;
9160
+ output: {
9161
+ schools: number;
9162
+ users: number;
9163
+ verifiedUsers: number;
9164
+ classes: number;
9165
+ departments: number;
9166
+ runJobs: {
9167
+ byStatus: {
9168
+ status: import(".prisma/client").$Enums.RunJobStatus;
9169
+ count: number;
9170
+ }[];
9171
+ failedLast24h: number;
9172
+ };
9173
+ earlyAccessRequests: number;
9174
+ pendingDevProgramApplications: number;
9175
+ };
9176
+ meta: object;
9177
+ }>;
8958
9178
  listRunJobs: import("@trpc/server").TRPCQueryProcedure<{
8959
9179
  input: {
8960
9180
  type?: "PDF_TO_WORKSHEET" | "GRADE_WORKSHEET" | "AI_LAB_CHAT" | "AI_NEWTON_CHAT" | "STUDENT_PROGRESS_CHAT" | "EMBED_CONTENT" | undefined;
@@ -9008,6 +9228,74 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
9008
9228
  };
9009
9229
  meta: object;
9010
9230
  }>;
9231
+ retryRunJob: import("@trpc/server").TRPCMutationProcedure<{
9232
+ input: {
9233
+ id: string;
9234
+ };
9235
+ output: {
9236
+ runJobId: string;
9237
+ bullJobId: string | null;
9238
+ retriedFrom: string;
9239
+ };
9240
+ meta: object;
9241
+ }>;
9242
+ getSchool: import("@trpc/server").TRPCQueryProcedure<{
9243
+ input: {
9244
+ id: string;
9245
+ };
9246
+ output: {
9247
+ departments: {
9248
+ id: string;
9249
+ name: string;
9250
+ _count: {
9251
+ classes: number;
9252
+ members: number;
9253
+ };
9254
+ color: string | null;
9255
+ }[];
9256
+ _count: {
9257
+ departments: number;
9258
+ memberships: number;
9259
+ classes: number;
9260
+ };
9261
+ memberships: {
9262
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
9263
+ user: {
9264
+ id: string;
9265
+ username: string;
9266
+ email: string;
9267
+ verified: boolean;
9268
+ };
9269
+ id: string;
9270
+ createdAt: Date;
9271
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
9272
+ }[];
9273
+ classes: {
9274
+ department: {
9275
+ id: string;
9276
+ name: string;
9277
+ } | null;
9278
+ section: string;
9279
+ id: string;
9280
+ name: string;
9281
+ _count: {
9282
+ teachers: number;
9283
+ students: number;
9284
+ };
9285
+ color: string | null;
9286
+ subject: string;
9287
+ }[];
9288
+ } & {
9289
+ id: string;
9290
+ createdAt: Date;
9291
+ updatedAt: Date;
9292
+ name: string;
9293
+ description: string | null;
9294
+ logoId: string | null;
9295
+ subdomain: string | null;
9296
+ };
9297
+ meta: object;
9298
+ }>;
9011
9299
  listSchools: import("@trpc/server").TRPCQueryProcedure<{
9012
9300
  input: {
9013
9301
  query?: string | undefined;
@@ -9125,6 +9413,82 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
9125
9413
  };
9126
9414
  meta: object;
9127
9415
  }>;
9416
+ searchUsers: import("@trpc/server").TRPCQueryProcedure<{
9417
+ input: {
9418
+ query?: string | undefined;
9419
+ page?: number | undefined;
9420
+ pageSize?: number | undefined;
9421
+ };
9422
+ output: {
9423
+ items: {
9424
+ school: {
9425
+ id: string;
9426
+ name: string;
9427
+ } | null;
9428
+ id: string;
9429
+ username: string;
9430
+ email: string;
9431
+ verified: boolean;
9432
+ _count: {
9433
+ teacherIn: number;
9434
+ studentIn: number;
9435
+ sessions: number;
9436
+ };
9437
+ }[];
9438
+ total: number;
9439
+ page: number;
9440
+ pageSize: number;
9441
+ pageCount: number;
9442
+ };
9443
+ meta: object;
9444
+ }>;
9445
+ getUser: import("@trpc/server").TRPCQueryProcedure<{
9446
+ input: {
9447
+ id: string;
9448
+ };
9449
+ output: {
9450
+ school: {
9451
+ id: string;
9452
+ name: string;
9453
+ subdomain: string | null;
9454
+ } | null;
9455
+ id: string;
9456
+ username: string;
9457
+ email: string;
9458
+ verified: boolean;
9459
+ termsAcceptedAt: Date | null;
9460
+ termsVersion: string | null;
9461
+ profile: {
9462
+ displayName: string | null;
9463
+ location: string | null;
9464
+ createdAt: Date;
9465
+ } | null;
9466
+ sessions: {
9467
+ type: import(".prisma/client").$Enums.SessionType;
9468
+ id: string;
9469
+ createdAt: Date | null;
9470
+ expiresAt: Date | null;
9471
+ }[];
9472
+ schoolMemberships: {
9473
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
9474
+ school: {
9475
+ id: string;
9476
+ name: string;
9477
+ };
9478
+ id: string;
9479
+ createdAt: Date;
9480
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
9481
+ }[];
9482
+ _count: {
9483
+ teacherIn: number;
9484
+ studentIn: number;
9485
+ submissions: number;
9486
+ sessions: number;
9487
+ files: number;
9488
+ };
9489
+ };
9490
+ meta: object;
9491
+ }>;
9128
9492
  }>>;
9129
9493
  embedding: import("@trpc/server").TRPCBuiltRouter<{
9130
9494
  ctx: import("../trpc.js").Context;
@@ -9182,21 +9546,318 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
9182
9546
  meta: object;
9183
9547
  }>;
9184
9548
  }>>;
9185
- }>>;
9186
- export type AppRouter = typeof appRouter;
9187
- export type RouterInputs = inferRouterInputs<AppRouter>;
9188
- export type RouterOutputs = inferRouterOutputs<AppRouter>;
9189
- export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9190
- ctx: import("../trpc.js").Context;
9191
- meta: object;
9192
- errorShape: {
9193
- data: {
9194
- zodError: import("zod").typeToFlattenedError<any, string> | null;
9195
- prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
9196
- code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
9197
- httpStatus: number;
9198
- path?: string;
9199
- stack?: string;
9549
+ gradebook: import("@trpc/server").TRPCBuiltRouter<{
9550
+ ctx: import("../trpc.js").Context;
9551
+ meta: object;
9552
+ errorShape: {
9553
+ data: {
9554
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
9555
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
9556
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
9557
+ httpStatus: number;
9558
+ path?: string;
9559
+ stack?: string;
9560
+ };
9561
+ message: string;
9562
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
9563
+ };
9564
+ transformer: false;
9565
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9566
+ listCategories: import("@trpc/server").TRPCQueryProcedure<{
9567
+ input: {
9568
+ [x: string]: unknown;
9569
+ classId: string;
9570
+ };
9571
+ output: {
9572
+ id: string;
9573
+ name: string;
9574
+ classId: string;
9575
+ weight: number;
9576
+ dropLowest: number;
9577
+ position: number;
9578
+ }[];
9579
+ meta: object;
9580
+ }>;
9581
+ createCategory: import("@trpc/server").TRPCMutationProcedure<{
9582
+ input: {
9583
+ [x: string]: unknown;
9584
+ classId: string;
9585
+ name: string;
9586
+ weight: number;
9587
+ dropLowest?: number | undefined;
9588
+ position?: number | undefined;
9589
+ };
9590
+ output: {
9591
+ id: string;
9592
+ name: string;
9593
+ classId: string;
9594
+ weight: number;
9595
+ dropLowest: number;
9596
+ position: number;
9597
+ };
9598
+ meta: object;
9599
+ }>;
9600
+ updateCategory: import("@trpc/server").TRPCMutationProcedure<{
9601
+ input: {
9602
+ [x: string]: unknown;
9603
+ classId: string;
9604
+ categoryId: string;
9605
+ name?: string | undefined;
9606
+ weight?: number | undefined;
9607
+ dropLowest?: number | undefined;
9608
+ position?: number | undefined;
9609
+ };
9610
+ output: {
9611
+ id: string;
9612
+ name: string;
9613
+ classId: string;
9614
+ weight: number;
9615
+ dropLowest: number;
9616
+ position: number;
9617
+ };
9618
+ meta: object;
9619
+ }>;
9620
+ deleteCategory: import("@trpc/server").TRPCMutationProcedure<{
9621
+ input: {
9622
+ [x: string]: unknown;
9623
+ classId: string;
9624
+ categoryId: string;
9625
+ };
9626
+ output: {
9627
+ id: string;
9628
+ name: string;
9629
+ classId: string;
9630
+ weight: number;
9631
+ dropLowest: number;
9632
+ position: number;
9633
+ };
9634
+ meta: object;
9635
+ }>;
9636
+ assignCategory: import("@trpc/server").TRPCMutationProcedure<{
9637
+ input: {
9638
+ [x: string]: unknown;
9639
+ classId: string;
9640
+ assignmentId: string;
9641
+ gradeCategoryId: string | null;
9642
+ };
9643
+ output: {
9644
+ type: import(".prisma/client").$Enums.AssignmentType;
9645
+ id: string;
9646
+ createdAt: Date | null;
9647
+ classId: string;
9648
+ title: string;
9649
+ dueDate: Date;
9650
+ maxGrade: number | null;
9651
+ eventId: string | null;
9652
+ instructions: string;
9653
+ modifiedAt: Date | null;
9654
+ teacherId: string;
9655
+ acceptFiles: boolean;
9656
+ acceptExtendedResponse: boolean;
9657
+ acceptWorksheet: boolean;
9658
+ gradeWithAI: boolean;
9659
+ aiPolicyLevel: number;
9660
+ sectionId: string | null;
9661
+ graded: boolean;
9662
+ weight: number;
9663
+ inProgress: boolean;
9664
+ template: boolean;
9665
+ markSchemeId: string | null;
9666
+ order: number | null;
9667
+ gradingBoundaryId: string | null;
9668
+ gradeCategoryId: string | null;
9669
+ };
9670
+ meta: object;
9671
+ }>;
9672
+ listColumns: import("@trpc/server").TRPCQueryProcedure<{
9673
+ input: {
9674
+ [x: string]: unknown;
9675
+ classId: string;
9676
+ };
9677
+ output: ({
9678
+ entries: {
9679
+ id: string;
9680
+ points: number;
9681
+ studentId: string;
9682
+ note: string | null;
9683
+ }[];
9684
+ } & {
9685
+ id: string;
9686
+ name: string;
9687
+ classId: string;
9688
+ gradeCategoryId: string | null;
9689
+ position: number;
9690
+ maxPoints: number;
9691
+ })[];
9692
+ meta: object;
9693
+ }>;
9694
+ createColumn: import("@trpc/server").TRPCMutationProcedure<{
9695
+ input: {
9696
+ [x: string]: unknown;
9697
+ classId: string;
9698
+ name: string;
9699
+ maxPoints: number;
9700
+ gradeCategoryId?: string | null | undefined;
9701
+ position?: number | undefined;
9702
+ };
9703
+ output: {
9704
+ id: string;
9705
+ name: string;
9706
+ classId: string;
9707
+ gradeCategoryId: string | null;
9708
+ position: number;
9709
+ maxPoints: number;
9710
+ };
9711
+ meta: object;
9712
+ }>;
9713
+ updateColumn: import("@trpc/server").TRPCMutationProcedure<{
9714
+ input: {
9715
+ [x: string]: unknown;
9716
+ classId: string;
9717
+ columnId: string;
9718
+ name?: string | undefined;
9719
+ gradeCategoryId?: string | null | undefined;
9720
+ position?: number | undefined;
9721
+ maxPoints?: number | undefined;
9722
+ };
9723
+ output: {
9724
+ id: string;
9725
+ name: string;
9726
+ classId: string;
9727
+ gradeCategoryId: string | null;
9728
+ position: number;
9729
+ maxPoints: number;
9730
+ };
9731
+ meta: object;
9732
+ }>;
9733
+ deleteColumn: import("@trpc/server").TRPCMutationProcedure<{
9734
+ input: {
9735
+ [x: string]: unknown;
9736
+ classId: string;
9737
+ columnId: string;
9738
+ };
9739
+ output: {
9740
+ id: string;
9741
+ name: string;
9742
+ classId: string;
9743
+ gradeCategoryId: string | null;
9744
+ position: number;
9745
+ maxPoints: number;
9746
+ };
9747
+ meta: object;
9748
+ }>;
9749
+ setEntry: import("@trpc/server").TRPCMutationProcedure<{
9750
+ input: {
9751
+ [x: string]: unknown;
9752
+ classId: string;
9753
+ points: number | null;
9754
+ studentId: string;
9755
+ columnId: string;
9756
+ note?: string | null | undefined;
9757
+ };
9758
+ output: {
9759
+ id: string;
9760
+ points: number;
9761
+ studentId: string;
9762
+ columnId: string;
9763
+ note: string | null;
9764
+ } | null;
9765
+ meta: object;
9766
+ }>;
9767
+ getPolicies: import("@trpc/server").TRPCQueryProcedure<{
9768
+ input: {
9769
+ [x: string]: unknown;
9770
+ classId: string;
9771
+ };
9772
+ output: {
9773
+ id: string;
9774
+ treatMissingAsZero: boolean;
9775
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9776
+ };
9777
+ meta: object;
9778
+ }>;
9779
+ updatePolicies: import("@trpc/server").TRPCMutationProcedure<{
9780
+ input: {
9781
+ [x: string]: unknown;
9782
+ classId: string;
9783
+ treatMissingAsZero?: boolean | undefined;
9784
+ gradeRoundingMode?: "NONE" | "HALF_UP" | "FLOOR" | "CEILING" | undefined;
9785
+ };
9786
+ output: {
9787
+ id: string;
9788
+ treatMissingAsZero: boolean;
9789
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9790
+ };
9791
+ meta: object;
9792
+ }>;
9793
+ getComputed: import("@trpc/server").TRPCQueryProcedure<{
9794
+ input: {
9795
+ [x: string]: unknown;
9796
+ classId: string;
9797
+ };
9798
+ output: {
9799
+ policies: {
9800
+ treatMissingAsZero: boolean;
9801
+ roundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9802
+ };
9803
+ categories: {
9804
+ id: string;
9805
+ name: string;
9806
+ classId: string;
9807
+ weight: number;
9808
+ dropLowest: number;
9809
+ position: number;
9810
+ }[];
9811
+ assignments: {
9812
+ id: string;
9813
+ title: string;
9814
+ maxGrade: number | null;
9815
+ weight: number;
9816
+ gradeCategoryId: string | null;
9817
+ dueDate: Date;
9818
+ }[];
9819
+ customColumns: {
9820
+ id: string;
9821
+ name: string;
9822
+ maxPoints: number;
9823
+ gradeCategoryId: string | null;
9824
+ position: number;
9825
+ }[];
9826
+ gradingBoundary: {
9827
+ id: string;
9828
+ name: string | null;
9829
+ structured: string;
9830
+ };
9831
+ students: import("../services/gradebook.js").GradebookStudentRow[];
9832
+ };
9833
+ meta: object;
9834
+ }>;
9835
+ exportCsv: import("@trpc/server").TRPCQueryProcedure<{
9836
+ input: {
9837
+ [x: string]: unknown;
9838
+ classId: string;
9839
+ };
9840
+ output: {
9841
+ csv: string;
9842
+ };
9843
+ meta: object;
9844
+ }>;
9845
+ }>>;
9846
+ }>>;
9847
+ export type AppRouter = typeof appRouter;
9848
+ export type RouterInputs = inferRouterInputs<AppRouter>;
9849
+ export type RouterOutputs = inferRouterOutputs<AppRouter>;
9850
+ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9851
+ ctx: import("../trpc.js").Context;
9852
+ meta: object;
9853
+ errorShape: {
9854
+ data: {
9855
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
9856
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
9857
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
9858
+ httpStatus: number;
9859
+ path?: string;
9860
+ stack?: string;
9200
9861
  };
9201
9862
  message: string;
9202
9863
  code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
@@ -9454,6 +10115,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9454
10115
  discussionsEnabled: boolean;
9455
10116
  studentsCanCreateDiscussions: boolean;
9456
10117
  studentsCanReply: boolean;
10118
+ treatMissingAsZero: boolean;
10119
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9457
10120
  };
9458
10121
  };
9459
10122
  meta: object;
@@ -9534,6 +10197,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9534
10197
  discussionsEnabled: boolean;
9535
10198
  studentsCanCreateDiscussions: boolean;
9536
10199
  studentsCanReply: boolean;
10200
+ treatMissingAsZero: boolean;
10201
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9537
10202
  };
9538
10203
  meta: object;
9539
10204
  }>;
@@ -9591,6 +10256,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9591
10256
  discussionsEnabled: boolean;
9592
10257
  studentsCanCreateDiscussions: boolean;
9593
10258
  studentsCanReply: boolean;
10259
+ treatMissingAsZero: boolean;
10260
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9594
10261
  };
9595
10262
  user: {
9596
10263
  type: "student" | "teacher";
@@ -9620,6 +10287,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9620
10287
  discussionsEnabled: boolean;
9621
10288
  studentsCanCreateDiscussions: boolean;
9622
10289
  studentsCanReply: boolean;
10290
+ treatMissingAsZero: boolean;
10291
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9623
10292
  };
9624
10293
  removedUserId: string;
9625
10294
  };
@@ -9922,6 +10591,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9922
10591
  discussionsEnabled: boolean;
9923
10592
  studentsCanCreateDiscussions: boolean;
9924
10593
  studentsCanReply: boolean;
10594
+ treatMissingAsZero: boolean;
10595
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9925
10596
  };
9926
10597
  meta: object;
9927
10598
  }>;
@@ -9955,6 +10626,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9955
10626
  markSchemeId: string | null;
9956
10627
  order: number | null;
9957
10628
  gradingBoundaryId: string | null;
10629
+ gradeCategoryId: string | null;
9958
10630
  }[];
9959
10631
  meta: object;
9960
10632
  }>;
@@ -9998,6 +10670,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9998
10670
  markSchemeId: string | null;
9999
10671
  order: number | null;
10000
10672
  gradingBoundaryId: string | null;
10673
+ gradeCategoryId: string | null;
10001
10674
  };
10002
10675
  meta: object;
10003
10676
  }>;
@@ -10041,6 +10714,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10041
10714
  markSchemeId: string | null;
10042
10715
  order: number | null;
10043
10716
  gradingBoundaryId: string | null;
10717
+ gradeCategoryId: string | null;
10044
10718
  };
10045
10719
  meta: object;
10046
10720
  }>;
@@ -10075,6 +10749,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10075
10749
  markSchemeId: string | null;
10076
10750
  order: number | null;
10077
10751
  gradingBoundaryId: string | null;
10752
+ gradeCategoryId: string | null;
10078
10753
  };
10079
10754
  meta: object;
10080
10755
  }>;
@@ -10113,6 +10788,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10113
10788
  markSchemeId: string | null;
10114
10789
  order: number | null;
10115
10790
  gradingBoundaryId: string | null;
10791
+ gradeCategoryId: string | null;
10116
10792
  };
10117
10793
  meta: object;
10118
10794
  }>;
@@ -10264,6 +10940,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10264
10940
  discussionsEnabled: boolean;
10265
10941
  studentsCanCreateDiscussions: boolean;
10266
10942
  studentsCanReply: boolean;
10943
+ treatMissingAsZero: boolean;
10944
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
10267
10945
  };
10268
10946
  meta: object;
10269
10947
  }>;
@@ -10708,8 +11386,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10708
11386
  input: {
10709
11387
  [x: string]: unknown;
10710
11388
  classId: string;
10711
- movedId: string;
10712
11389
  position: "end" | "start" | "before" | "after";
11390
+ movedId: string;
10713
11391
  targetId?: string | undefined;
10714
11392
  };
10715
11393
  output: {
@@ -10737,6 +11415,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10737
11415
  markSchemeId: string | null;
10738
11416
  order: number | null;
10739
11417
  gradingBoundaryId: string | null;
11418
+ gradeCategoryId: string | null;
10740
11419
  } | null;
10741
11420
  meta: object;
10742
11421
  }>;
@@ -10781,6 +11460,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10781
11460
  markSchemeId: string | null;
10782
11461
  order: number | null;
10783
11462
  gradingBoundaryId: string | null;
11463
+ gradeCategoryId: string | null;
10784
11464
  } | null;
10785
11465
  meta: object;
10786
11466
  }>;
@@ -10876,6 +11556,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10876
11556
  markSchemeId: string | null;
10877
11557
  order: number | null;
10878
11558
  gradingBoundaryId: string | null;
11559
+ gradeCategoryId: string | null;
10879
11560
  };
10880
11561
  meta: object;
10881
11562
  }>;
@@ -10923,6 +11604,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10923
11604
  discussionsEnabled: boolean;
10924
11605
  studentsCanCreateDiscussions: boolean;
10925
11606
  studentsCanReply: boolean;
11607
+ treatMissingAsZero: boolean;
11608
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
10926
11609
  };
10927
11610
  section: {
10928
11611
  id: string;
@@ -11091,6 +11774,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11091
11774
  markSchemeId: string | null;
11092
11775
  order: number | null;
11093
11776
  gradingBoundaryId: string | null;
11777
+ gradeCategoryId: string | null;
11094
11778
  };
11095
11779
  meta: object;
11096
11780
  }>;
@@ -11116,6 +11800,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11116
11800
  discussionsEnabled: boolean;
11117
11801
  studentsCanCreateDiscussions: boolean;
11118
11802
  studentsCanReply: boolean;
11803
+ treatMissingAsZero: boolean;
11804
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11119
11805
  };
11120
11806
  markScheme: {
11121
11807
  id: string;
@@ -11154,6 +11840,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11154
11840
  markSchemeId: string | null;
11155
11841
  order: number | null;
11156
11842
  gradingBoundaryId: string | null;
11843
+ gradeCategoryId: string | null;
11157
11844
  };
11158
11845
  attachments: {
11159
11846
  path: string;
@@ -11259,6 +11946,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11259
11946
  discussionsEnabled: boolean;
11260
11947
  studentsCanCreateDiscussions: boolean;
11261
11948
  studentsCanReply: boolean;
11949
+ treatMissingAsZero: boolean;
11950
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11262
11951
  };
11263
11952
  markScheme: {
11264
11953
  id: string;
@@ -11297,6 +11986,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11297
11986
  markSchemeId: string | null;
11298
11987
  order: number | null;
11299
11988
  gradingBoundaryId: string | null;
11989
+ gradeCategoryId: string | null;
11300
11990
  };
11301
11991
  attachments: {
11302
11992
  path: string;
@@ -11423,6 +12113,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11423
12113
  discussionsEnabled: boolean;
11424
12114
  studentsCanCreateDiscussions: boolean;
11425
12115
  studentsCanReply: boolean;
12116
+ treatMissingAsZero: boolean;
12117
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11426
12118
  };
11427
12119
  markScheme: {
11428
12120
  id: string;
@@ -11457,6 +12149,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11457
12149
  markSchemeId: string | null;
11458
12150
  order: number | null;
11459
12151
  gradingBoundaryId: string | null;
12152
+ gradeCategoryId: string | null;
11460
12153
  };
11461
12154
  attachments: {
11462
12155
  path: string;
@@ -11533,6 +12226,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11533
12226
  discussionsEnabled: boolean;
11534
12227
  studentsCanCreateDiscussions: boolean;
11535
12228
  studentsCanReply: boolean;
12229
+ treatMissingAsZero: boolean;
12230
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11536
12231
  };
11537
12232
  markScheme: {
11538
12233
  id: string;
@@ -11567,6 +12262,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11567
12262
  markSchemeId: string | null;
11568
12263
  order: number | null;
11569
12264
  gradingBoundaryId: string | null;
12265
+ gradeCategoryId: string | null;
11570
12266
  };
11571
12267
  attachments: ({
11572
12268
  thumbnail: {
@@ -11924,6 +12620,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11924
12620
  discussionsEnabled: boolean;
11925
12621
  studentsCanCreateDiscussions: boolean;
11926
12622
  studentsCanReply: boolean;
12623
+ treatMissingAsZero: boolean;
12624
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11927
12625
  };
11928
12626
  markScheme: {
11929
12627
  id: string;
@@ -11958,6 +12656,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11958
12656
  markSchemeId: string | null;
11959
12657
  order: number | null;
11960
12658
  gradingBoundaryId: string | null;
12659
+ gradeCategoryId: string | null;
11961
12660
  };
11962
12661
  attachments: ({
11963
12662
  thumbnail: {
@@ -12163,6 +12862,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12163
12862
  markSchemeId: string | null;
12164
12863
  order: number | null;
12165
12864
  gradingBoundaryId: string | null;
12865
+ gradeCategoryId: string | null;
12166
12866
  };
12167
12867
  };
12168
12868
  meta: object;
@@ -12220,6 +12920,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12220
12920
  markSchemeId: string | null;
12221
12921
  order: number | null;
12222
12922
  gradingBoundaryId: string | null;
12923
+ gradeCategoryId: string | null;
12223
12924
  };
12224
12925
  };
12225
12926
  meta: object;
@@ -12357,6 +13058,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12357
13058
  markSchemeId: string | null;
12358
13059
  order: number | null;
12359
13060
  gradingBoundaryId: string | null;
13061
+ gradeCategoryId: string | null;
12360
13062
  };
12361
13063
  meta: object;
12362
13064
  }>;
@@ -12457,6 +13159,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12457
13159
  markSchemeId: string | null;
12458
13160
  order: number | null;
12459
13161
  gradingBoundaryId: string | null;
13162
+ gradeCategoryId: string | null;
12460
13163
  };
12461
13164
  meta: object;
12462
13165
  }>;
@@ -12558,6 +13261,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12558
13261
  markSchemeId: string | null;
12559
13262
  order: number | null;
12560
13263
  gradingBoundaryId: string | null;
13264
+ gradeCategoryId: string | null;
12561
13265
  };
12562
13266
  meta: object;
12563
13267
  }>;
@@ -12658,6 +13362,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12658
13362
  markSchemeId: string | null;
12659
13363
  order: number | null;
12660
13364
  gradingBoundaryId: string | null;
13365
+ gradeCategoryId: string | null;
12661
13366
  };
12662
13367
  meta: object;
12663
13368
  }>;
@@ -12754,26 +13459,100 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12754
13459
  };
12755
13460
  meta: object;
12756
13461
  }>;
12757
- updateUploadProgress: import("@trpc/server").TRPCMutationProcedure<{
13462
+ listFileAnnotations: import("@trpc/server").TRPCQueryProcedure<{
12758
13463
  input: {
12759
- progress: number;
13464
+ [x: string]: unknown;
13465
+ classId: string;
13466
+ submissionId: string;
12760
13467
  fileId: string;
12761
13468
  };
12762
13469
  output: {
12763
- success: boolean;
12764
- progress: number;
12765
- };
12766
- meta: object;
12767
- }>;
12768
- }>>;
12769
- user: import("@trpc/server").TRPCBuiltRouter<{
12770
- ctx: import("../trpc.js").Context;
12771
- meta: object;
12772
- errorShape: {
12773
- data: {
12774
- zodError: import("zod").typeToFlattenedError<any, string> | null;
12775
- prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
12776
- code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
13470
+ annotations: ({
13471
+ author: {
13472
+ id: string;
13473
+ username: string;
13474
+ profile: {
13475
+ displayName: string | null;
13476
+ } | null;
13477
+ };
13478
+ } & {
13479
+ type: import(".prisma/client").$Enums.FileAnnotationType;
13480
+ id: string;
13481
+ createdAt: Date;
13482
+ updatedAt: Date;
13483
+ color: string | null;
13484
+ submissionId: string | null;
13485
+ text: string | null;
13486
+ authorId: string;
13487
+ fileId: string;
13488
+ page: number;
13489
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
13490
+ })[];
13491
+ };
13492
+ meta: object;
13493
+ }>;
13494
+ upsertFileAnnotation: import("@trpc/server").TRPCMutationProcedure<{
13495
+ input: {
13496
+ [x: string]: unknown;
13497
+ classId: string;
13498
+ type: "HIGHLIGHT" | "INK" | "COMMENT" | "TEXT";
13499
+ submissionId: string;
13500
+ fileId: string;
13501
+ page: number;
13502
+ geometry: Record<string, unknown>;
13503
+ id?: string | undefined;
13504
+ color?: string | undefined;
13505
+ text?: string | undefined;
13506
+ };
13507
+ output: {
13508
+ annotation: {
13509
+ type: import(".prisma/client").$Enums.FileAnnotationType;
13510
+ id: string;
13511
+ createdAt: Date;
13512
+ updatedAt: Date;
13513
+ color: string | null;
13514
+ submissionId: string | null;
13515
+ text: string | null;
13516
+ authorId: string;
13517
+ fileId: string;
13518
+ page: number;
13519
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
13520
+ };
13521
+ };
13522
+ meta: object;
13523
+ }>;
13524
+ deleteFileAnnotation: import("@trpc/server").TRPCMutationProcedure<{
13525
+ input: {
13526
+ [x: string]: unknown;
13527
+ classId: string;
13528
+ id: string;
13529
+ submissionId: string;
13530
+ };
13531
+ output: {
13532
+ success: boolean;
13533
+ };
13534
+ meta: object;
13535
+ }>;
13536
+ updateUploadProgress: import("@trpc/server").TRPCMutationProcedure<{
13537
+ input: {
13538
+ progress: number;
13539
+ fileId: string;
13540
+ };
13541
+ output: {
13542
+ success: boolean;
13543
+ progress: number;
13544
+ };
13545
+ meta: object;
13546
+ }>;
13547
+ }>>;
13548
+ user: import("@trpc/server").TRPCBuiltRouter<{
13549
+ ctx: import("../trpc.js").Context;
13550
+ meta: object;
13551
+ errorShape: {
13552
+ data: {
13553
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
13554
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
13555
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
12777
13556
  httpStatus: number;
12778
13557
  path?: string;
12779
13558
  stack?: string;
@@ -12992,8 +13771,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12992
13771
  input: {
12993
13772
  [x: string]: unknown;
12994
13773
  classId: string;
12995
- movedId: string;
12996
13774
  position: "end" | "start" | "before" | "after";
13775
+ movedId: string;
12997
13776
  targetId?: string | undefined;
12998
13777
  };
12999
13778
  output: {
@@ -13238,6 +14017,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13238
14017
  discussionsEnabled: boolean;
13239
14018
  studentsCanCreateDiscussions: boolean;
13240
14019
  studentsCanReply: boolean;
14020
+ treatMissingAsZero: boolean;
14021
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
13241
14022
  }) | null;
13242
14023
  assignmentsAttached: {
13243
14024
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -13387,6 +14168,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13387
14168
  markSchemeId: string | null;
13388
14169
  order: number | null;
13389
14170
  gradingBoundaryId: string | null;
14171
+ gradeCategoryId: string | null;
13390
14172
  };
13391
14173
  };
13392
14174
  meta: object;
@@ -13436,6 +14218,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13436
14218
  markSchemeId: string | null;
13437
14219
  order: number | null;
13438
14220
  gradingBoundaryId: string | null;
14221
+ gradeCategoryId: string | null;
13439
14222
  };
13440
14223
  };
13441
14224
  meta: object;
@@ -13632,6 +14415,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13632
14415
  discussionsEnabled: boolean;
13633
14416
  studentsCanCreateDiscussions: boolean;
13634
14417
  studentsCanReply: boolean;
14418
+ treatMissingAsZero: boolean;
14419
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
13635
14420
  } | null;
13636
14421
  assignmentsAttached: {
13637
14422
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -13658,6 +14443,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13658
14443
  markSchemeId: string | null;
13659
14444
  order: number | null;
13660
14445
  gradingBoundaryId: string | null;
14446
+ gradeCategoryId: string | null;
13661
14447
  }[];
13662
14448
  } & {
13663
14449
  id: string;
@@ -13684,6 +14470,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13684
14470
  discussionsEnabled: boolean;
13685
14471
  studentsCanCreateDiscussions: boolean;
13686
14472
  studentsCanReply: boolean;
14473
+ treatMissingAsZero: boolean;
14474
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
13687
14475
  } | null;
13688
14476
  assignmentsAttached: {
13689
14477
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -13710,6 +14498,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13710
14498
  markSchemeId: string | null;
13711
14499
  order: number | null;
13712
14500
  gradingBoundaryId: string | null;
14501
+ gradeCategoryId: string | null;
13713
14502
  }[];
13714
14503
  } & {
13715
14504
  id: string;
@@ -13846,6 +14635,72 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13846
14635
  };
13847
14636
  meta: object;
13848
14637
  }>;
14638
+ listAnnotations: import("@trpc/server").TRPCQueryProcedure<{
14639
+ input: {
14640
+ fileId: string;
14641
+ };
14642
+ output: {
14643
+ annotations: ({
14644
+ author: {
14645
+ id: string;
14646
+ username: string;
14647
+ profile: {
14648
+ displayName: string | null;
14649
+ } | null;
14650
+ };
14651
+ } & {
14652
+ type: import(".prisma/client").$Enums.FileAnnotationType;
14653
+ id: string;
14654
+ createdAt: Date;
14655
+ updatedAt: Date;
14656
+ color: string | null;
14657
+ submissionId: string | null;
14658
+ text: string | null;
14659
+ authorId: string;
14660
+ fileId: string;
14661
+ page: number;
14662
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
14663
+ })[];
14664
+ };
14665
+ meta: object;
14666
+ }>;
14667
+ upsertAnnotation: import("@trpc/server").TRPCMutationProcedure<{
14668
+ input: {
14669
+ type: "HIGHLIGHT" | "INK" | "COMMENT" | "TEXT";
14670
+ fileId: string;
14671
+ page: number;
14672
+ geometry: Record<string, unknown>;
14673
+ id?: string | undefined;
14674
+ color?: string | undefined;
14675
+ text?: string | undefined;
14676
+ };
14677
+ output: {
14678
+ annotation: {
14679
+ type: import(".prisma/client").$Enums.FileAnnotationType;
14680
+ id: string;
14681
+ createdAt: Date;
14682
+ updatedAt: Date;
14683
+ color: string | null;
14684
+ submissionId: string | null;
14685
+ text: string | null;
14686
+ authorId: string;
14687
+ fileId: string;
14688
+ page: number;
14689
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
14690
+ };
14691
+ };
14692
+ meta: object;
14693
+ }>;
14694
+ deleteAnnotation: import("@trpc/server").TRPCMutationProcedure<{
14695
+ input: {
14696
+ id: string;
14697
+ fileId: string;
14698
+ };
14699
+ output: {
14700
+ success: boolean;
14701
+ };
14702
+ meta: object;
14703
+ }>;
13849
14704
  }>>;
13850
14705
  folder: import("@trpc/server").TRPCBuiltRouter<{
13851
14706
  ctx: import("../trpc.js").Context;
@@ -15131,6 +15986,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
15131
15986
  discussionsEnabled: boolean;
15132
15987
  studentsCanCreateDiscussions: boolean;
15133
15988
  studentsCanReply: boolean;
15989
+ treatMissingAsZero: boolean;
15990
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
15134
15991
  } | null;
15135
15992
  tags: {
15136
15993
  id: string;
@@ -15367,8 +16224,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
15367
16224
  reorderQuestions: import("@trpc/server").TRPCMutationProcedure<{
15368
16225
  input: {
15369
16226
  worksheetId: string;
15370
- movedId: string;
15371
16227
  position: "before" | "after";
16228
+ movedId: string;
15372
16229
  targetId: string;
15373
16230
  };
15374
16231
  output: {
@@ -16533,6 +17390,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16533
17390
  discussionsEnabled: boolean;
16534
17391
  studentsCanCreateDiscussions: boolean;
16535
17392
  studentsCanReply: boolean;
17393
+ treatMissingAsZero: boolean;
17394
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
16536
17395
  })[];
16537
17396
  };
16538
17397
  meta: object;
@@ -16584,6 +17443,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16584
17443
  discussionsEnabled: boolean;
16585
17444
  studentsCanCreateDiscussions: boolean;
16586
17445
  studentsCanReply: boolean;
17446
+ treatMissingAsZero: boolean;
17447
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
16587
17448
  };
16588
17449
  };
16589
17450
  meta: object;
@@ -18142,6 +19003,26 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18142
19003
  };
18143
19004
  transformer: false;
18144
19005
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
19006
+ getOverviewMetrics: import("@trpc/server").TRPCQueryProcedure<{
19007
+ input: void;
19008
+ output: {
19009
+ schools: number;
19010
+ users: number;
19011
+ verifiedUsers: number;
19012
+ classes: number;
19013
+ departments: number;
19014
+ runJobs: {
19015
+ byStatus: {
19016
+ status: import(".prisma/client").$Enums.RunJobStatus;
19017
+ count: number;
19018
+ }[];
19019
+ failedLast24h: number;
19020
+ };
19021
+ earlyAccessRequests: number;
19022
+ pendingDevProgramApplications: number;
19023
+ };
19024
+ meta: object;
19025
+ }>;
18145
19026
  listRunJobs: import("@trpc/server").TRPCQueryProcedure<{
18146
19027
  input: {
18147
19028
  type?: "PDF_TO_WORKSHEET" | "GRADE_WORKSHEET" | "AI_LAB_CHAT" | "AI_NEWTON_CHAT" | "STUDENT_PROGRESS_CHAT" | "EMBED_CONTENT" | undefined;
@@ -18195,6 +19076,74 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18195
19076
  };
18196
19077
  meta: object;
18197
19078
  }>;
19079
+ retryRunJob: import("@trpc/server").TRPCMutationProcedure<{
19080
+ input: {
19081
+ id: string;
19082
+ };
19083
+ output: {
19084
+ runJobId: string;
19085
+ bullJobId: string | null;
19086
+ retriedFrom: string;
19087
+ };
19088
+ meta: object;
19089
+ }>;
19090
+ getSchool: import("@trpc/server").TRPCQueryProcedure<{
19091
+ input: {
19092
+ id: string;
19093
+ };
19094
+ output: {
19095
+ departments: {
19096
+ id: string;
19097
+ name: string;
19098
+ _count: {
19099
+ classes: number;
19100
+ members: number;
19101
+ };
19102
+ color: string | null;
19103
+ }[];
19104
+ _count: {
19105
+ departments: number;
19106
+ memberships: number;
19107
+ classes: number;
19108
+ };
19109
+ memberships: {
19110
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
19111
+ user: {
19112
+ id: string;
19113
+ username: string;
19114
+ email: string;
19115
+ verified: boolean;
19116
+ };
19117
+ id: string;
19118
+ createdAt: Date;
19119
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
19120
+ }[];
19121
+ classes: {
19122
+ department: {
19123
+ id: string;
19124
+ name: string;
19125
+ } | null;
19126
+ section: string;
19127
+ id: string;
19128
+ name: string;
19129
+ _count: {
19130
+ teachers: number;
19131
+ students: number;
19132
+ };
19133
+ color: string | null;
19134
+ subject: string;
19135
+ }[];
19136
+ } & {
19137
+ id: string;
19138
+ createdAt: Date;
19139
+ updatedAt: Date;
19140
+ name: string;
19141
+ description: string | null;
19142
+ logoId: string | null;
19143
+ subdomain: string | null;
19144
+ };
19145
+ meta: object;
19146
+ }>;
18198
19147
  listSchools: import("@trpc/server").TRPCQueryProcedure<{
18199
19148
  input: {
18200
19149
  query?: string | undefined;
@@ -18312,6 +19261,82 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18312
19261
  };
18313
19262
  meta: object;
18314
19263
  }>;
19264
+ searchUsers: import("@trpc/server").TRPCQueryProcedure<{
19265
+ input: {
19266
+ query?: string | undefined;
19267
+ page?: number | undefined;
19268
+ pageSize?: number | undefined;
19269
+ };
19270
+ output: {
19271
+ items: {
19272
+ school: {
19273
+ id: string;
19274
+ name: string;
19275
+ } | null;
19276
+ id: string;
19277
+ username: string;
19278
+ email: string;
19279
+ verified: boolean;
19280
+ _count: {
19281
+ teacherIn: number;
19282
+ studentIn: number;
19283
+ sessions: number;
19284
+ };
19285
+ }[];
19286
+ total: number;
19287
+ page: number;
19288
+ pageSize: number;
19289
+ pageCount: number;
19290
+ };
19291
+ meta: object;
19292
+ }>;
19293
+ getUser: import("@trpc/server").TRPCQueryProcedure<{
19294
+ input: {
19295
+ id: string;
19296
+ };
19297
+ output: {
19298
+ school: {
19299
+ id: string;
19300
+ name: string;
19301
+ subdomain: string | null;
19302
+ } | null;
19303
+ id: string;
19304
+ username: string;
19305
+ email: string;
19306
+ verified: boolean;
19307
+ termsAcceptedAt: Date | null;
19308
+ termsVersion: string | null;
19309
+ profile: {
19310
+ displayName: string | null;
19311
+ location: string | null;
19312
+ createdAt: Date;
19313
+ } | null;
19314
+ sessions: {
19315
+ type: import(".prisma/client").$Enums.SessionType;
19316
+ id: string;
19317
+ createdAt: Date | null;
19318
+ expiresAt: Date | null;
19319
+ }[];
19320
+ schoolMemberships: {
19321
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
19322
+ school: {
19323
+ id: string;
19324
+ name: string;
19325
+ };
19326
+ id: string;
19327
+ createdAt: Date;
19328
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
19329
+ }[];
19330
+ _count: {
19331
+ teacherIn: number;
19332
+ studentIn: number;
19333
+ submissions: number;
19334
+ sessions: number;
19335
+ files: number;
19336
+ };
19337
+ };
19338
+ meta: object;
19339
+ }>;
18315
19340
  }>>;
18316
19341
  embedding: import("@trpc/server").TRPCBuiltRouter<{
18317
19342
  ctx: import("../trpc.js").Context;
@@ -18369,5 +19394,302 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18369
19394
  meta: object;
18370
19395
  }>;
18371
19396
  }>>;
19397
+ gradebook: import("@trpc/server").TRPCBuiltRouter<{
19398
+ ctx: import("../trpc.js").Context;
19399
+ meta: object;
19400
+ errorShape: {
19401
+ data: {
19402
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
19403
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
19404
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
19405
+ httpStatus: number;
19406
+ path?: string;
19407
+ stack?: string;
19408
+ };
19409
+ message: string;
19410
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
19411
+ };
19412
+ transformer: false;
19413
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
19414
+ listCategories: import("@trpc/server").TRPCQueryProcedure<{
19415
+ input: {
19416
+ [x: string]: unknown;
19417
+ classId: string;
19418
+ };
19419
+ output: {
19420
+ id: string;
19421
+ name: string;
19422
+ classId: string;
19423
+ weight: number;
19424
+ dropLowest: number;
19425
+ position: number;
19426
+ }[];
19427
+ meta: object;
19428
+ }>;
19429
+ createCategory: import("@trpc/server").TRPCMutationProcedure<{
19430
+ input: {
19431
+ [x: string]: unknown;
19432
+ classId: string;
19433
+ name: string;
19434
+ weight: number;
19435
+ dropLowest?: number | undefined;
19436
+ position?: number | undefined;
19437
+ };
19438
+ output: {
19439
+ id: string;
19440
+ name: string;
19441
+ classId: string;
19442
+ weight: number;
19443
+ dropLowest: number;
19444
+ position: number;
19445
+ };
19446
+ meta: object;
19447
+ }>;
19448
+ updateCategory: import("@trpc/server").TRPCMutationProcedure<{
19449
+ input: {
19450
+ [x: string]: unknown;
19451
+ classId: string;
19452
+ categoryId: string;
19453
+ name?: string | undefined;
19454
+ weight?: number | undefined;
19455
+ dropLowest?: number | undefined;
19456
+ position?: number | undefined;
19457
+ };
19458
+ output: {
19459
+ id: string;
19460
+ name: string;
19461
+ classId: string;
19462
+ weight: number;
19463
+ dropLowest: number;
19464
+ position: number;
19465
+ };
19466
+ meta: object;
19467
+ }>;
19468
+ deleteCategory: import("@trpc/server").TRPCMutationProcedure<{
19469
+ input: {
19470
+ [x: string]: unknown;
19471
+ classId: string;
19472
+ categoryId: string;
19473
+ };
19474
+ output: {
19475
+ id: string;
19476
+ name: string;
19477
+ classId: string;
19478
+ weight: number;
19479
+ dropLowest: number;
19480
+ position: number;
19481
+ };
19482
+ meta: object;
19483
+ }>;
19484
+ assignCategory: import("@trpc/server").TRPCMutationProcedure<{
19485
+ input: {
19486
+ [x: string]: unknown;
19487
+ classId: string;
19488
+ assignmentId: string;
19489
+ gradeCategoryId: string | null;
19490
+ };
19491
+ output: {
19492
+ type: import(".prisma/client").$Enums.AssignmentType;
19493
+ id: string;
19494
+ createdAt: Date | null;
19495
+ classId: string;
19496
+ title: string;
19497
+ dueDate: Date;
19498
+ maxGrade: number | null;
19499
+ eventId: string | null;
19500
+ instructions: string;
19501
+ modifiedAt: Date | null;
19502
+ teacherId: string;
19503
+ acceptFiles: boolean;
19504
+ acceptExtendedResponse: boolean;
19505
+ acceptWorksheet: boolean;
19506
+ gradeWithAI: boolean;
19507
+ aiPolicyLevel: number;
19508
+ sectionId: string | null;
19509
+ graded: boolean;
19510
+ weight: number;
19511
+ inProgress: boolean;
19512
+ template: boolean;
19513
+ markSchemeId: string | null;
19514
+ order: number | null;
19515
+ gradingBoundaryId: string | null;
19516
+ gradeCategoryId: string | null;
19517
+ };
19518
+ meta: object;
19519
+ }>;
19520
+ listColumns: import("@trpc/server").TRPCQueryProcedure<{
19521
+ input: {
19522
+ [x: string]: unknown;
19523
+ classId: string;
19524
+ };
19525
+ output: ({
19526
+ entries: {
19527
+ id: string;
19528
+ points: number;
19529
+ studentId: string;
19530
+ note: string | null;
19531
+ }[];
19532
+ } & {
19533
+ id: string;
19534
+ name: string;
19535
+ classId: string;
19536
+ gradeCategoryId: string | null;
19537
+ position: number;
19538
+ maxPoints: number;
19539
+ })[];
19540
+ meta: object;
19541
+ }>;
19542
+ createColumn: import("@trpc/server").TRPCMutationProcedure<{
19543
+ input: {
19544
+ [x: string]: unknown;
19545
+ classId: string;
19546
+ name: string;
19547
+ maxPoints: number;
19548
+ gradeCategoryId?: string | null | undefined;
19549
+ position?: number | undefined;
19550
+ };
19551
+ output: {
19552
+ id: string;
19553
+ name: string;
19554
+ classId: string;
19555
+ gradeCategoryId: string | null;
19556
+ position: number;
19557
+ maxPoints: number;
19558
+ };
19559
+ meta: object;
19560
+ }>;
19561
+ updateColumn: import("@trpc/server").TRPCMutationProcedure<{
19562
+ input: {
19563
+ [x: string]: unknown;
19564
+ classId: string;
19565
+ columnId: string;
19566
+ name?: string | undefined;
19567
+ gradeCategoryId?: string | null | undefined;
19568
+ position?: number | undefined;
19569
+ maxPoints?: number | undefined;
19570
+ };
19571
+ output: {
19572
+ id: string;
19573
+ name: string;
19574
+ classId: string;
19575
+ gradeCategoryId: string | null;
19576
+ position: number;
19577
+ maxPoints: number;
19578
+ };
19579
+ meta: object;
19580
+ }>;
19581
+ deleteColumn: import("@trpc/server").TRPCMutationProcedure<{
19582
+ input: {
19583
+ [x: string]: unknown;
19584
+ classId: string;
19585
+ columnId: string;
19586
+ };
19587
+ output: {
19588
+ id: string;
19589
+ name: string;
19590
+ classId: string;
19591
+ gradeCategoryId: string | null;
19592
+ position: number;
19593
+ maxPoints: number;
19594
+ };
19595
+ meta: object;
19596
+ }>;
19597
+ setEntry: import("@trpc/server").TRPCMutationProcedure<{
19598
+ input: {
19599
+ [x: string]: unknown;
19600
+ classId: string;
19601
+ points: number | null;
19602
+ studentId: string;
19603
+ columnId: string;
19604
+ note?: string | null | undefined;
19605
+ };
19606
+ output: {
19607
+ id: string;
19608
+ points: number;
19609
+ studentId: string;
19610
+ columnId: string;
19611
+ note: string | null;
19612
+ } | null;
19613
+ meta: object;
19614
+ }>;
19615
+ getPolicies: import("@trpc/server").TRPCQueryProcedure<{
19616
+ input: {
19617
+ [x: string]: unknown;
19618
+ classId: string;
19619
+ };
19620
+ output: {
19621
+ id: string;
19622
+ treatMissingAsZero: boolean;
19623
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
19624
+ };
19625
+ meta: object;
19626
+ }>;
19627
+ updatePolicies: import("@trpc/server").TRPCMutationProcedure<{
19628
+ input: {
19629
+ [x: string]: unknown;
19630
+ classId: string;
19631
+ treatMissingAsZero?: boolean | undefined;
19632
+ gradeRoundingMode?: "NONE" | "HALF_UP" | "FLOOR" | "CEILING" | undefined;
19633
+ };
19634
+ output: {
19635
+ id: string;
19636
+ treatMissingAsZero: boolean;
19637
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
19638
+ };
19639
+ meta: object;
19640
+ }>;
19641
+ getComputed: import("@trpc/server").TRPCQueryProcedure<{
19642
+ input: {
19643
+ [x: string]: unknown;
19644
+ classId: string;
19645
+ };
19646
+ output: {
19647
+ policies: {
19648
+ treatMissingAsZero: boolean;
19649
+ roundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
19650
+ };
19651
+ categories: {
19652
+ id: string;
19653
+ name: string;
19654
+ classId: string;
19655
+ weight: number;
19656
+ dropLowest: number;
19657
+ position: number;
19658
+ }[];
19659
+ assignments: {
19660
+ id: string;
19661
+ title: string;
19662
+ maxGrade: number | null;
19663
+ weight: number;
19664
+ gradeCategoryId: string | null;
19665
+ dueDate: Date;
19666
+ }[];
19667
+ customColumns: {
19668
+ id: string;
19669
+ name: string;
19670
+ maxPoints: number;
19671
+ gradeCategoryId: string | null;
19672
+ position: number;
19673
+ }[];
19674
+ gradingBoundary: {
19675
+ id: string;
19676
+ name: string | null;
19677
+ structured: string;
19678
+ };
19679
+ students: import("../services/gradebook.js").GradebookStudentRow[];
19680
+ };
19681
+ meta: object;
19682
+ }>;
19683
+ exportCsv: import("@trpc/server").TRPCQueryProcedure<{
19684
+ input: {
19685
+ [x: string]: unknown;
19686
+ classId: string;
19687
+ };
19688
+ output: {
19689
+ csv: string;
19690
+ };
19691
+ meta: object;
19692
+ }>;
19693
+ }>>;
18372
19694
  }>>;
18373
19695
  //# sourceMappingURL=_app.d.ts.map