@studious-lms/server 1.21.0 → 1.23.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 (120) hide show
  1. package/dist/models/agenda.d.ts +6 -0
  2. package/dist/models/agenda.d.ts.map +1 -1
  3. package/dist/models/announcement.d.ts +2 -0
  4. package/dist/models/announcement.d.ts.map +1 -1
  5. package/dist/models/assignment.d.ts +27 -0
  6. package/dist/models/assignment.d.ts.map +1 -1
  7. package/dist/models/auth.d.ts +4 -0
  8. package/dist/models/auth.d.ts.map +1 -1
  9. package/dist/models/class.d.ts +14 -0
  10. package/dist/models/class.d.ts.map +1 -1
  11. package/dist/models/event.d.ts +11 -0
  12. package/dist/models/event.d.ts.map +1 -1
  13. package/dist/models/file.d.ts +19 -0
  14. package/dist/models/file.d.ts.map +1 -1
  15. package/dist/models/folder.d.ts +4 -0
  16. package/dist/models/folder.d.ts.map +1 -1
  17. package/dist/models/gradebook.d.ts +180 -0
  18. package/dist/models/gradebook.d.ts.map +1 -0
  19. package/dist/models/gradebook.js +88 -0
  20. package/dist/models/gradebook.js.map +1 -0
  21. package/dist/models/labChat.d.ts +4 -0
  22. package/dist/models/labChat.d.ts.map +1 -1
  23. package/dist/models/newtonChat.d.ts +2 -0
  24. package/dist/models/newtonChat.d.ts.map +1 -1
  25. package/dist/models/school.d.ts +177 -0
  26. package/dist/models/school.d.ts.map +1 -1
  27. package/dist/models/school.js +75 -2
  28. package/dist/models/school.js.map +1 -1
  29. package/dist/models/section.d.ts +3 -0
  30. package/dist/models/section.d.ts.map +1 -1
  31. package/dist/models/worksheet.d.ts +6 -0
  32. package/dist/models/worksheet.d.ts.map +1 -1
  33. package/dist/routers/_app.d.ts +1475 -73
  34. package/dist/routers/_app.d.ts.map +1 -1
  35. package/dist/routers/_app.js +4 -2
  36. package/dist/routers/_app.js.map +1 -1
  37. package/dist/routers/admin.d.ts +164 -0
  38. package/dist/routers/admin.d.ts.map +1 -1
  39. package/dist/routers/admin.js +23 -4
  40. package/dist/routers/admin.js.map +1 -1
  41. package/dist/routers/agenda.d.ts +6 -0
  42. package/dist/routers/agenda.d.ts.map +1 -1
  43. package/dist/routers/assignment.d.ts +30 -3
  44. package/dist/routers/assignment.d.ts.map +1 -1
  45. package/dist/routers/class.d.ts +17 -0
  46. package/dist/routers/class.d.ts.map +1 -1
  47. package/dist/routers/event.d.ts +4 -0
  48. package/dist/routers/event.d.ts.map +1 -1
  49. package/dist/routers/file.d.ts +66 -0
  50. package/dist/routers/file.d.ts.map +1 -1
  51. package/dist/routers/file.js +111 -2
  52. package/dist/routers/file.js.map +1 -1
  53. package/dist/routers/gradebook.d.ts +299 -0
  54. package/dist/routers/gradebook.d.ts.map +1 -0
  55. package/dist/routers/gradebook.js +107 -0
  56. package/dist/routers/gradebook.js.map +1 -0
  57. package/dist/routers/school.d.ts +118 -0
  58. package/dist/routers/school.d.ts.map +1 -1
  59. package/dist/routers/school.js +32 -3
  60. package/dist/routers/school.js.map +1 -1
  61. package/dist/routers/section.d.ts +1 -1
  62. package/dist/routers/worksheet.d.ts +3 -1
  63. package/dist/routers/worksheet.d.ts.map +1 -1
  64. package/dist/services/adminInstitution.d.ts +51 -0
  65. package/dist/services/adminInstitution.d.ts.map +1 -1
  66. package/dist/services/adminInstitution.js +52 -2
  67. package/dist/services/adminInstitution.js.map +1 -1
  68. package/dist/services/adminMetrics.d.ts +17 -0
  69. package/dist/services/adminMetrics.d.ts.map +1 -0
  70. package/dist/services/adminMetrics.js +37 -0
  71. package/dist/services/adminMetrics.js.map +1 -0
  72. package/dist/services/adminRunJob.d.ts +9 -0
  73. package/dist/services/adminRunJob.d.ts.map +1 -1
  74. package/dist/services/adminRunJob.js +18 -2
  75. package/dist/services/adminRunJob.js.map +1 -1
  76. package/dist/services/adminUser.d.ts +67 -0
  77. package/dist/services/adminUser.d.ts.map +1 -0
  78. package/dist/services/adminUser.js +87 -0
  79. package/dist/services/adminUser.js.map +1 -0
  80. package/dist/services/agenda.d.ts +6 -0
  81. package/dist/services/agenda.d.ts.map +1 -1
  82. package/dist/services/assignment.d.ts +27 -0
  83. package/dist/services/assignment.d.ts.map +1 -1
  84. package/dist/services/class.d.ts +17 -0
  85. package/dist/services/class.d.ts.map +1 -1
  86. package/dist/services/event.d.ts +4 -0
  87. package/dist/services/event.d.ts.map +1 -1
  88. package/dist/services/gradeCalculation.d.ts +70 -0
  89. package/dist/services/gradeCalculation.d.ts.map +1 -0
  90. package/dist/services/gradeCalculation.js +148 -0
  91. package/dist/services/gradeCalculation.js.map +1 -0
  92. package/dist/services/gradebook.d.ts +197 -0
  93. package/dist/services/gradebook.d.ts.map +1 -0
  94. package/dist/services/gradebook.js +263 -0
  95. package/dist/services/gradebook.js.map +1 -0
  96. package/dist/services/school.d.ts +98 -0
  97. package/dist/services/school.d.ts.map +1 -1
  98. package/dist/services/school.js +116 -4
  99. package/dist/services/school.js.map +1 -1
  100. package/dist/services/worksheet.d.ts +2 -0
  101. package/dist/services/worksheet.d.ts.map +1 -1
  102. package/package.json +1 -1
  103. package/prisma/migrations/20260708011629_add_gradebook_categories_columns_policies/migration.sql +78 -0
  104. package/prisma/migrations/20260723142314_make_file_annotation_submission_optional/migration.sql +2 -0
  105. package/prisma/schema.prisma +62 -2
  106. package/src/models/gradebook.ts +91 -0
  107. package/src/models/school.ts +89 -0
  108. package/src/routers/_app.ts +2 -0
  109. package/src/routers/admin.ts +28 -0
  110. package/src/routers/file.ts +128 -0
  111. package/src/routers/gradebook.ts +173 -0
  112. package/src/routers/school.ts +45 -0
  113. package/src/services/adminInstitution.ts +52 -0
  114. package/src/services/adminMetrics.ts +46 -0
  115. package/src/services/adminRunJob.ts +24 -0
  116. package/src/services/adminUser.ts +93 -0
  117. package/src/services/gradeCalculation.ts +253 -0
  118. package/src/services/gradebook.ts +383 -0
  119. package/src/services/school.ts +178 -1
  120. 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
  }>;
@@ -3589,7 +3633,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3589
3633
  createdAt: Date;
3590
3634
  updatedAt: Date;
3591
3635
  color: string | null;
3592
- submissionId: string;
3636
+ submissionId: string | null;
3593
3637
  text: string | null;
3594
3638
  authorId: string;
3595
3639
  fileId: string;
@@ -3619,7 +3663,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3619
3663
  createdAt: Date;
3620
3664
  updatedAt: Date;
3621
3665
  color: string | null;
3622
- submissionId: string;
3666
+ submissionId: string | null;
3623
3667
  text: string | null;
3624
3668
  authorId: string;
3625
3669
  fileId: string;
@@ -3879,8 +3923,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3879
3923
  input: {
3880
3924
  [x: string]: unknown;
3881
3925
  classId: string;
3882
- movedId: string;
3883
3926
  position: "end" | "start" | "before" | "after";
3927
+ movedId: string;
3884
3928
  targetId?: string | undefined;
3885
3929
  };
3886
3930
  output: {
@@ -4125,6 +4169,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4125
4169
  discussionsEnabled: boolean;
4126
4170
  studentsCanCreateDiscussions: boolean;
4127
4171
  studentsCanReply: boolean;
4172
+ treatMissingAsZero: boolean;
4173
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
4128
4174
  }) | null;
4129
4175
  assignmentsAttached: {
4130
4176
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -4274,6 +4320,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4274
4320
  markSchemeId: string | null;
4275
4321
  order: number | null;
4276
4322
  gradingBoundaryId: string | null;
4323
+ gradeCategoryId: string | null;
4277
4324
  };
4278
4325
  };
4279
4326
  meta: object;
@@ -4323,6 +4370,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4323
4370
  markSchemeId: string | null;
4324
4371
  order: number | null;
4325
4372
  gradingBoundaryId: string | null;
4373
+ gradeCategoryId: string | null;
4326
4374
  };
4327
4375
  };
4328
4376
  meta: object;
@@ -4519,6 +4567,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4519
4567
  discussionsEnabled: boolean;
4520
4568
  studentsCanCreateDiscussions: boolean;
4521
4569
  studentsCanReply: boolean;
4570
+ treatMissingAsZero: boolean;
4571
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
4522
4572
  } | null;
4523
4573
  assignmentsAttached: {
4524
4574
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -4545,6 +4595,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4545
4595
  markSchemeId: string | null;
4546
4596
  order: number | null;
4547
4597
  gradingBoundaryId: string | null;
4598
+ gradeCategoryId: string | null;
4548
4599
  }[];
4549
4600
  } & {
4550
4601
  id: string;
@@ -4571,6 +4622,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4571
4622
  discussionsEnabled: boolean;
4572
4623
  studentsCanCreateDiscussions: boolean;
4573
4624
  studentsCanReply: boolean;
4625
+ treatMissingAsZero: boolean;
4626
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
4574
4627
  } | null;
4575
4628
  assignmentsAttached: {
4576
4629
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -4597,6 +4650,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4597
4650
  markSchemeId: string | null;
4598
4651
  order: number | null;
4599
4652
  gradingBoundaryId: string | null;
4653
+ gradeCategoryId: string | null;
4600
4654
  }[];
4601
4655
  } & {
4602
4656
  id: string;
@@ -4733,6 +4787,72 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4733
4787
  };
4734
4788
  meta: object;
4735
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
+ }>;
4736
4856
  }>>;
4737
4857
  folder: import("@trpc/server").TRPCBuiltRouter<{
4738
4858
  ctx: import("../trpc.js").Context;
@@ -6018,6 +6138,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
6018
6138
  discussionsEnabled: boolean;
6019
6139
  studentsCanCreateDiscussions: boolean;
6020
6140
  studentsCanReply: boolean;
6141
+ treatMissingAsZero: boolean;
6142
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
6021
6143
  } | null;
6022
6144
  tags: {
6023
6145
  id: string;
@@ -6254,8 +6376,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
6254
6376
  reorderQuestions: import("@trpc/server").TRPCMutationProcedure<{
6255
6377
  input: {
6256
6378
  worksheetId: string;
6257
- movedId: string;
6258
6379
  position: "before" | "after";
6380
+ movedId: string;
6259
6381
  targetId: string;
6260
6382
  };
6261
6383
  output: {
@@ -7350,6 +7472,23 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7350
7472
  expiresAt: Date;
7351
7473
  role: import(".prisma/client").$Enums.SchoolMembershipRole;
7352
7474
  }[];
7475
+ recentMembers: {
7476
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
7477
+ user: {
7478
+ id: string;
7479
+ username: string;
7480
+ email: string;
7481
+ profile: {
7482
+ profilePicture: string | null;
7483
+ displayName: string | null;
7484
+ profilePictureThumbnail: string | null;
7485
+ } | null;
7486
+ };
7487
+ id: string;
7488
+ createdAt: Date;
7489
+ updatedAt: Date;
7490
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
7491
+ }[];
7353
7492
  };
7354
7493
  };
7355
7494
  meta: object;
@@ -7420,6 +7559,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7420
7559
  discussionsEnabled: boolean;
7421
7560
  studentsCanCreateDiscussions: boolean;
7422
7561
  studentsCanReply: boolean;
7562
+ treatMissingAsZero: boolean;
7563
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
7423
7564
  })[];
7424
7565
  };
7425
7566
  meta: object;
@@ -7471,6 +7612,40 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7471
7612
  discussionsEnabled: boolean;
7472
7613
  studentsCanCreateDiscussions: boolean;
7473
7614
  studentsCanReply: boolean;
7615
+ treatMissingAsZero: boolean;
7616
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
7617
+ };
7618
+ };
7619
+ meta: object;
7620
+ }>;
7621
+ deleteClass: import("@trpc/server").TRPCMutationProcedure<{
7622
+ input: {
7623
+ schoolId: string;
7624
+ classId: string;
7625
+ };
7626
+ output: {
7627
+ deletedClass: {
7628
+ id: string;
7629
+ };
7630
+ };
7631
+ meta: object;
7632
+ }>;
7633
+ updateClassMembers: import("@trpc/server").TRPCMutationProcedure<{
7634
+ input: {
7635
+ schoolId: string;
7636
+ classId: string;
7637
+ addTeacherIds?: string[] | undefined;
7638
+ removeTeacherIds?: string[] | undefined;
7639
+ addStudentIds?: string[] | undefined;
7640
+ removeStudentIds?: string[] | undefined;
7641
+ };
7642
+ output: {
7643
+ class: {
7644
+ id: string;
7645
+ _count: {
7646
+ teachers: number;
7647
+ students: number;
7648
+ };
7474
7649
  };
7475
7650
  };
7476
7651
  meta: object;
@@ -7548,6 +7723,71 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7548
7723
  };
7549
7724
  meta: object;
7550
7725
  }>;
7726
+ getMemberDetail: import("@trpc/server").TRPCQueryProcedure<{
7727
+ input: {
7728
+ schoolId: string;
7729
+ memberUserId: string;
7730
+ };
7731
+ output: {
7732
+ membership: {
7733
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
7734
+ user: {
7735
+ id: string;
7736
+ username: string;
7737
+ email: string;
7738
+ profile: {
7739
+ profilePicture: string | null;
7740
+ displayName: string | null;
7741
+ profilePictureThumbnail: string | null;
7742
+ } | null;
7743
+ };
7744
+ id: string;
7745
+ createdAt: Date;
7746
+ updatedAt: Date;
7747
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
7748
+ };
7749
+ teachingClasses: {
7750
+ id: string;
7751
+ name: string;
7752
+ section: string;
7753
+ subject: string;
7754
+ color: string | null;
7755
+ teacherCount: number;
7756
+ studentCount: number;
7757
+ }[];
7758
+ enrolledClasses: {
7759
+ id: string;
7760
+ name: string;
7761
+ section: string;
7762
+ subject: string;
7763
+ color: string | null;
7764
+ teacherCount: number;
7765
+ studentCount: number;
7766
+ }[];
7767
+ };
7768
+ meta: object;
7769
+ }>;
7770
+ bulkUpdateMemberRoles: import("@trpc/server").TRPCMutationProcedure<{
7771
+ input: {
7772
+ schoolId: string;
7773
+ role: "ADMIN" | "TEACHER" | "STUDENT";
7774
+ memberUserIds: string[];
7775
+ };
7776
+ output: {
7777
+ updatedCount: number;
7778
+ };
7779
+ meta: object;
7780
+ }>;
7781
+ bulkRemoveMembers: import("@trpc/server").TRPCMutationProcedure<{
7782
+ input: {
7783
+ schoolId: string;
7784
+ memberUserIds: string[];
7785
+ };
7786
+ output: {
7787
+ removedCount: number;
7788
+ };
7789
+ meta: object;
7790
+ }>;
7551
7791
  listInvites: import("@trpc/server").TRPCQueryProcedure<{
7552
7792
  input: {
7553
7793
  schoolId: string;
@@ -9029,6 +9269,26 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
9029
9269
  };
9030
9270
  transformer: false;
9031
9271
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9272
+ getOverviewMetrics: import("@trpc/server").TRPCQueryProcedure<{
9273
+ input: void;
9274
+ output: {
9275
+ schools: number;
9276
+ users: number;
9277
+ verifiedUsers: number;
9278
+ classes: number;
9279
+ departments: number;
9280
+ runJobs: {
9281
+ byStatus: {
9282
+ status: import(".prisma/client").$Enums.RunJobStatus;
9283
+ count: number;
9284
+ }[];
9285
+ failedLast24h: number;
9286
+ };
9287
+ earlyAccessRequests: number;
9288
+ pendingDevProgramApplications: number;
9289
+ };
9290
+ meta: object;
9291
+ }>;
9032
9292
  listRunJobs: import("@trpc/server").TRPCQueryProcedure<{
9033
9293
  input: {
9034
9294
  type?: "PDF_TO_WORKSHEET" | "GRADE_WORKSHEET" | "AI_LAB_CHAT" | "AI_NEWTON_CHAT" | "STUDENT_PROGRESS_CHAT" | "EMBED_CONTENT" | undefined;
@@ -9082,6 +9342,74 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
9082
9342
  };
9083
9343
  meta: object;
9084
9344
  }>;
9345
+ retryRunJob: import("@trpc/server").TRPCMutationProcedure<{
9346
+ input: {
9347
+ id: string;
9348
+ };
9349
+ output: {
9350
+ runJobId: string;
9351
+ bullJobId: string | null;
9352
+ retriedFrom: string;
9353
+ };
9354
+ meta: object;
9355
+ }>;
9356
+ getSchool: import("@trpc/server").TRPCQueryProcedure<{
9357
+ input: {
9358
+ id: string;
9359
+ };
9360
+ output: {
9361
+ departments: {
9362
+ id: string;
9363
+ name: string;
9364
+ _count: {
9365
+ classes: number;
9366
+ members: number;
9367
+ };
9368
+ color: string | null;
9369
+ }[];
9370
+ _count: {
9371
+ departments: number;
9372
+ memberships: number;
9373
+ classes: number;
9374
+ };
9375
+ memberships: {
9376
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
9377
+ user: {
9378
+ id: string;
9379
+ username: string;
9380
+ email: string;
9381
+ verified: boolean;
9382
+ };
9383
+ id: string;
9384
+ createdAt: Date;
9385
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
9386
+ }[];
9387
+ classes: {
9388
+ department: {
9389
+ id: string;
9390
+ name: string;
9391
+ } | null;
9392
+ section: string;
9393
+ id: string;
9394
+ name: string;
9395
+ _count: {
9396
+ teachers: number;
9397
+ students: number;
9398
+ };
9399
+ color: string | null;
9400
+ subject: string;
9401
+ }[];
9402
+ } & {
9403
+ id: string;
9404
+ createdAt: Date;
9405
+ updatedAt: Date;
9406
+ name: string;
9407
+ description: string | null;
9408
+ logoId: string | null;
9409
+ subdomain: string | null;
9410
+ };
9411
+ meta: object;
9412
+ }>;
9085
9413
  listSchools: import("@trpc/server").TRPCQueryProcedure<{
9086
9414
  input: {
9087
9415
  query?: string | undefined;
@@ -9199,29 +9527,105 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
9199
9527
  };
9200
9528
  meta: object;
9201
9529
  }>;
9202
- }>>;
9203
- embedding: import("@trpc/server").TRPCBuiltRouter<{
9204
- ctx: import("../trpc.js").Context;
9205
- meta: object;
9206
- errorShape: {
9207
- data: {
9208
- zodError: import("zod").typeToFlattenedError<any, string> | null;
9209
- prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
9210
- code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
9211
- httpStatus: number;
9212
- path?: string;
9213
- stack?: string;
9214
- };
9215
- message: string;
9216
- code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
9217
- };
9218
- transformer: false;
9219
- }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9220
- search: import("@trpc/server").TRPCQueryProcedure<{
9530
+ searchUsers: import("@trpc/server").TRPCQueryProcedure<{
9221
9531
  input: {
9222
- query: string;
9223
- classId: string;
9224
- limit?: number | undefined;
9532
+ query?: string | undefined;
9533
+ page?: number | undefined;
9534
+ pageSize?: number | undefined;
9535
+ };
9536
+ output: {
9537
+ items: {
9538
+ school: {
9539
+ id: string;
9540
+ name: string;
9541
+ } | null;
9542
+ id: string;
9543
+ username: string;
9544
+ email: string;
9545
+ verified: boolean;
9546
+ _count: {
9547
+ teacherIn: number;
9548
+ studentIn: number;
9549
+ sessions: number;
9550
+ };
9551
+ }[];
9552
+ total: number;
9553
+ page: number;
9554
+ pageSize: number;
9555
+ pageCount: number;
9556
+ };
9557
+ meta: object;
9558
+ }>;
9559
+ getUser: import("@trpc/server").TRPCQueryProcedure<{
9560
+ input: {
9561
+ id: string;
9562
+ };
9563
+ output: {
9564
+ school: {
9565
+ id: string;
9566
+ name: string;
9567
+ subdomain: string | null;
9568
+ } | null;
9569
+ id: string;
9570
+ username: string;
9571
+ email: string;
9572
+ verified: boolean;
9573
+ termsAcceptedAt: Date | null;
9574
+ termsVersion: string | null;
9575
+ profile: {
9576
+ displayName: string | null;
9577
+ location: string | null;
9578
+ createdAt: Date;
9579
+ } | null;
9580
+ sessions: {
9581
+ type: import(".prisma/client").$Enums.SessionType;
9582
+ id: string;
9583
+ createdAt: Date | null;
9584
+ expiresAt: Date | null;
9585
+ }[];
9586
+ schoolMemberships: {
9587
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
9588
+ school: {
9589
+ id: string;
9590
+ name: string;
9591
+ };
9592
+ id: string;
9593
+ createdAt: Date;
9594
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
9595
+ }[];
9596
+ _count: {
9597
+ teacherIn: number;
9598
+ studentIn: number;
9599
+ submissions: number;
9600
+ sessions: number;
9601
+ files: number;
9602
+ };
9603
+ };
9604
+ meta: object;
9605
+ }>;
9606
+ }>>;
9607
+ embedding: import("@trpc/server").TRPCBuiltRouter<{
9608
+ ctx: import("../trpc.js").Context;
9609
+ meta: object;
9610
+ errorShape: {
9611
+ data: {
9612
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
9613
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
9614
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
9615
+ httpStatus: number;
9616
+ path?: string;
9617
+ stack?: string;
9618
+ };
9619
+ message: string;
9620
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
9621
+ };
9622
+ transformer: false;
9623
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9624
+ search: import("@trpc/server").TRPCQueryProcedure<{
9625
+ input: {
9626
+ query: string;
9627
+ classId: string;
9628
+ limit?: number | undefined;
9225
9629
  sourceTypes?: ("FILE" | "ASSIGNMENT" | "WORKSHEET" | "ANNOUNCEMENT" | "SECTION" | "DISCUSSION" | "SUBMISSION" | "SYLLABUS")[] | undefined;
9226
9630
  };
9227
9631
  output: import("../services/embedding.js").EmbeddingSearchResult[];
@@ -9256,6 +9660,303 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
9256
9660
  meta: object;
9257
9661
  }>;
9258
9662
  }>>;
9663
+ gradebook: import("@trpc/server").TRPCBuiltRouter<{
9664
+ ctx: import("../trpc.js").Context;
9665
+ meta: object;
9666
+ errorShape: {
9667
+ data: {
9668
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
9669
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
9670
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
9671
+ httpStatus: number;
9672
+ path?: string;
9673
+ stack?: string;
9674
+ };
9675
+ message: string;
9676
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
9677
+ };
9678
+ transformer: false;
9679
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
9680
+ listCategories: import("@trpc/server").TRPCQueryProcedure<{
9681
+ input: {
9682
+ [x: string]: unknown;
9683
+ classId: string;
9684
+ };
9685
+ output: {
9686
+ id: string;
9687
+ name: string;
9688
+ classId: string;
9689
+ weight: number;
9690
+ dropLowest: number;
9691
+ position: number;
9692
+ }[];
9693
+ meta: object;
9694
+ }>;
9695
+ createCategory: import("@trpc/server").TRPCMutationProcedure<{
9696
+ input: {
9697
+ [x: string]: unknown;
9698
+ classId: string;
9699
+ name: string;
9700
+ weight: number;
9701
+ dropLowest?: number | undefined;
9702
+ position?: number | undefined;
9703
+ };
9704
+ output: {
9705
+ id: string;
9706
+ name: string;
9707
+ classId: string;
9708
+ weight: number;
9709
+ dropLowest: number;
9710
+ position: number;
9711
+ };
9712
+ meta: object;
9713
+ }>;
9714
+ updateCategory: import("@trpc/server").TRPCMutationProcedure<{
9715
+ input: {
9716
+ [x: string]: unknown;
9717
+ classId: string;
9718
+ categoryId: string;
9719
+ name?: string | undefined;
9720
+ weight?: number | undefined;
9721
+ dropLowest?: number | undefined;
9722
+ position?: number | undefined;
9723
+ };
9724
+ output: {
9725
+ id: string;
9726
+ name: string;
9727
+ classId: string;
9728
+ weight: number;
9729
+ dropLowest: number;
9730
+ position: number;
9731
+ };
9732
+ meta: object;
9733
+ }>;
9734
+ deleteCategory: import("@trpc/server").TRPCMutationProcedure<{
9735
+ input: {
9736
+ [x: string]: unknown;
9737
+ classId: string;
9738
+ categoryId: string;
9739
+ };
9740
+ output: {
9741
+ id: string;
9742
+ name: string;
9743
+ classId: string;
9744
+ weight: number;
9745
+ dropLowest: number;
9746
+ position: number;
9747
+ };
9748
+ meta: object;
9749
+ }>;
9750
+ assignCategory: import("@trpc/server").TRPCMutationProcedure<{
9751
+ input: {
9752
+ [x: string]: unknown;
9753
+ classId: string;
9754
+ assignmentId: string;
9755
+ gradeCategoryId: string | null;
9756
+ };
9757
+ output: {
9758
+ type: import(".prisma/client").$Enums.AssignmentType;
9759
+ id: string;
9760
+ createdAt: Date | null;
9761
+ classId: string;
9762
+ title: string;
9763
+ dueDate: Date;
9764
+ maxGrade: number | null;
9765
+ eventId: string | null;
9766
+ instructions: string;
9767
+ modifiedAt: Date | null;
9768
+ teacherId: string;
9769
+ acceptFiles: boolean;
9770
+ acceptExtendedResponse: boolean;
9771
+ acceptWorksheet: boolean;
9772
+ gradeWithAI: boolean;
9773
+ aiPolicyLevel: number;
9774
+ sectionId: string | null;
9775
+ graded: boolean;
9776
+ weight: number;
9777
+ inProgress: boolean;
9778
+ template: boolean;
9779
+ markSchemeId: string | null;
9780
+ order: number | null;
9781
+ gradingBoundaryId: string | null;
9782
+ gradeCategoryId: string | null;
9783
+ };
9784
+ meta: object;
9785
+ }>;
9786
+ listColumns: import("@trpc/server").TRPCQueryProcedure<{
9787
+ input: {
9788
+ [x: string]: unknown;
9789
+ classId: string;
9790
+ };
9791
+ output: ({
9792
+ entries: {
9793
+ id: string;
9794
+ points: number;
9795
+ studentId: string;
9796
+ note: string | null;
9797
+ }[];
9798
+ } & {
9799
+ id: string;
9800
+ name: string;
9801
+ classId: string;
9802
+ gradeCategoryId: string | null;
9803
+ position: number;
9804
+ maxPoints: number;
9805
+ })[];
9806
+ meta: object;
9807
+ }>;
9808
+ createColumn: import("@trpc/server").TRPCMutationProcedure<{
9809
+ input: {
9810
+ [x: string]: unknown;
9811
+ classId: string;
9812
+ name: string;
9813
+ maxPoints: number;
9814
+ gradeCategoryId?: string | null | undefined;
9815
+ position?: number | undefined;
9816
+ };
9817
+ output: {
9818
+ id: string;
9819
+ name: string;
9820
+ classId: string;
9821
+ gradeCategoryId: string | null;
9822
+ position: number;
9823
+ maxPoints: number;
9824
+ };
9825
+ meta: object;
9826
+ }>;
9827
+ updateColumn: import("@trpc/server").TRPCMutationProcedure<{
9828
+ input: {
9829
+ [x: string]: unknown;
9830
+ classId: string;
9831
+ columnId: string;
9832
+ name?: string | undefined;
9833
+ gradeCategoryId?: string | null | undefined;
9834
+ position?: number | undefined;
9835
+ maxPoints?: number | undefined;
9836
+ };
9837
+ output: {
9838
+ id: string;
9839
+ name: string;
9840
+ classId: string;
9841
+ gradeCategoryId: string | null;
9842
+ position: number;
9843
+ maxPoints: number;
9844
+ };
9845
+ meta: object;
9846
+ }>;
9847
+ deleteColumn: import("@trpc/server").TRPCMutationProcedure<{
9848
+ input: {
9849
+ [x: string]: unknown;
9850
+ classId: string;
9851
+ columnId: string;
9852
+ };
9853
+ output: {
9854
+ id: string;
9855
+ name: string;
9856
+ classId: string;
9857
+ gradeCategoryId: string | null;
9858
+ position: number;
9859
+ maxPoints: number;
9860
+ };
9861
+ meta: object;
9862
+ }>;
9863
+ setEntry: import("@trpc/server").TRPCMutationProcedure<{
9864
+ input: {
9865
+ [x: string]: unknown;
9866
+ classId: string;
9867
+ points: number | null;
9868
+ studentId: string;
9869
+ columnId: string;
9870
+ note?: string | null | undefined;
9871
+ };
9872
+ output: {
9873
+ id: string;
9874
+ points: number;
9875
+ studentId: string;
9876
+ columnId: string;
9877
+ note: string | null;
9878
+ } | null;
9879
+ meta: object;
9880
+ }>;
9881
+ getPolicies: import("@trpc/server").TRPCQueryProcedure<{
9882
+ input: {
9883
+ [x: string]: unknown;
9884
+ classId: string;
9885
+ };
9886
+ output: {
9887
+ id: string;
9888
+ treatMissingAsZero: boolean;
9889
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9890
+ };
9891
+ meta: object;
9892
+ }>;
9893
+ updatePolicies: import("@trpc/server").TRPCMutationProcedure<{
9894
+ input: {
9895
+ [x: string]: unknown;
9896
+ classId: string;
9897
+ treatMissingAsZero?: boolean | undefined;
9898
+ gradeRoundingMode?: "NONE" | "HALF_UP" | "FLOOR" | "CEILING" | undefined;
9899
+ };
9900
+ output: {
9901
+ id: string;
9902
+ treatMissingAsZero: boolean;
9903
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9904
+ };
9905
+ meta: object;
9906
+ }>;
9907
+ getComputed: import("@trpc/server").TRPCQueryProcedure<{
9908
+ input: {
9909
+ [x: string]: unknown;
9910
+ classId: string;
9911
+ };
9912
+ output: {
9913
+ policies: {
9914
+ treatMissingAsZero: boolean;
9915
+ roundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9916
+ };
9917
+ categories: {
9918
+ id: string;
9919
+ name: string;
9920
+ classId: string;
9921
+ weight: number;
9922
+ dropLowest: number;
9923
+ position: number;
9924
+ }[];
9925
+ assignments: {
9926
+ id: string;
9927
+ title: string;
9928
+ maxGrade: number | null;
9929
+ weight: number;
9930
+ gradeCategoryId: string | null;
9931
+ dueDate: Date;
9932
+ }[];
9933
+ customColumns: {
9934
+ id: string;
9935
+ name: string;
9936
+ maxPoints: number;
9937
+ gradeCategoryId: string | null;
9938
+ position: number;
9939
+ }[];
9940
+ gradingBoundary: {
9941
+ id: string;
9942
+ name: string | null;
9943
+ structured: string;
9944
+ };
9945
+ students: import("../services/gradebook.js").GradebookStudentRow[];
9946
+ };
9947
+ meta: object;
9948
+ }>;
9949
+ exportCsv: import("@trpc/server").TRPCQueryProcedure<{
9950
+ input: {
9951
+ [x: string]: unknown;
9952
+ classId: string;
9953
+ };
9954
+ output: {
9955
+ csv: string;
9956
+ };
9957
+ meta: object;
9958
+ }>;
9959
+ }>>;
9259
9960
  }>>;
9260
9961
  export type AppRouter = typeof appRouter;
9261
9962
  export type RouterInputs = inferRouterInputs<AppRouter>;
@@ -9528,6 +10229,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9528
10229
  discussionsEnabled: boolean;
9529
10230
  studentsCanCreateDiscussions: boolean;
9530
10231
  studentsCanReply: boolean;
10232
+ treatMissingAsZero: boolean;
10233
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9531
10234
  };
9532
10235
  };
9533
10236
  meta: object;
@@ -9608,6 +10311,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9608
10311
  discussionsEnabled: boolean;
9609
10312
  studentsCanCreateDiscussions: boolean;
9610
10313
  studentsCanReply: boolean;
10314
+ treatMissingAsZero: boolean;
10315
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9611
10316
  };
9612
10317
  meta: object;
9613
10318
  }>;
@@ -9665,6 +10370,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9665
10370
  discussionsEnabled: boolean;
9666
10371
  studentsCanCreateDiscussions: boolean;
9667
10372
  studentsCanReply: boolean;
10373
+ treatMissingAsZero: boolean;
10374
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9668
10375
  };
9669
10376
  user: {
9670
10377
  type: "student" | "teacher";
@@ -9694,6 +10401,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9694
10401
  discussionsEnabled: boolean;
9695
10402
  studentsCanCreateDiscussions: boolean;
9696
10403
  studentsCanReply: boolean;
10404
+ treatMissingAsZero: boolean;
10405
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9697
10406
  };
9698
10407
  removedUserId: string;
9699
10408
  };
@@ -9996,6 +10705,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9996
10705
  discussionsEnabled: boolean;
9997
10706
  studentsCanCreateDiscussions: boolean;
9998
10707
  studentsCanReply: boolean;
10708
+ treatMissingAsZero: boolean;
10709
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
9999
10710
  };
10000
10711
  meta: object;
10001
10712
  }>;
@@ -10029,6 +10740,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10029
10740
  markSchemeId: string | null;
10030
10741
  order: number | null;
10031
10742
  gradingBoundaryId: string | null;
10743
+ gradeCategoryId: string | null;
10032
10744
  }[];
10033
10745
  meta: object;
10034
10746
  }>;
@@ -10072,6 +10784,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10072
10784
  markSchemeId: string | null;
10073
10785
  order: number | null;
10074
10786
  gradingBoundaryId: string | null;
10787
+ gradeCategoryId: string | null;
10075
10788
  };
10076
10789
  meta: object;
10077
10790
  }>;
@@ -10115,6 +10828,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10115
10828
  markSchemeId: string | null;
10116
10829
  order: number | null;
10117
10830
  gradingBoundaryId: string | null;
10831
+ gradeCategoryId: string | null;
10118
10832
  };
10119
10833
  meta: object;
10120
10834
  }>;
@@ -10149,6 +10863,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10149
10863
  markSchemeId: string | null;
10150
10864
  order: number | null;
10151
10865
  gradingBoundaryId: string | null;
10866
+ gradeCategoryId: string | null;
10152
10867
  };
10153
10868
  meta: object;
10154
10869
  }>;
@@ -10187,6 +10902,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10187
10902
  markSchemeId: string | null;
10188
10903
  order: number | null;
10189
10904
  gradingBoundaryId: string | null;
10905
+ gradeCategoryId: string | null;
10190
10906
  };
10191
10907
  meta: object;
10192
10908
  }>;
@@ -10338,6 +11054,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10338
11054
  discussionsEnabled: boolean;
10339
11055
  studentsCanCreateDiscussions: boolean;
10340
11056
  studentsCanReply: boolean;
11057
+ treatMissingAsZero: boolean;
11058
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
10341
11059
  };
10342
11060
  meta: object;
10343
11061
  }>;
@@ -10782,8 +11500,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10782
11500
  input: {
10783
11501
  [x: string]: unknown;
10784
11502
  classId: string;
10785
- movedId: string;
10786
11503
  position: "end" | "start" | "before" | "after";
11504
+ movedId: string;
10787
11505
  targetId?: string | undefined;
10788
11506
  };
10789
11507
  output: {
@@ -10811,6 +11529,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10811
11529
  markSchemeId: string | null;
10812
11530
  order: number | null;
10813
11531
  gradingBoundaryId: string | null;
11532
+ gradeCategoryId: string | null;
10814
11533
  } | null;
10815
11534
  meta: object;
10816
11535
  }>;
@@ -10855,6 +11574,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10855
11574
  markSchemeId: string | null;
10856
11575
  order: number | null;
10857
11576
  gradingBoundaryId: string | null;
11577
+ gradeCategoryId: string | null;
10858
11578
  } | null;
10859
11579
  meta: object;
10860
11580
  }>;
@@ -10950,6 +11670,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10950
11670
  markSchemeId: string | null;
10951
11671
  order: number | null;
10952
11672
  gradingBoundaryId: string | null;
11673
+ gradeCategoryId: string | null;
10953
11674
  };
10954
11675
  meta: object;
10955
11676
  }>;
@@ -10997,6 +11718,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10997
11718
  discussionsEnabled: boolean;
10998
11719
  studentsCanCreateDiscussions: boolean;
10999
11720
  studentsCanReply: boolean;
11721
+ treatMissingAsZero: boolean;
11722
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11000
11723
  };
11001
11724
  section: {
11002
11725
  id: string;
@@ -11165,6 +11888,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11165
11888
  markSchemeId: string | null;
11166
11889
  order: number | null;
11167
11890
  gradingBoundaryId: string | null;
11891
+ gradeCategoryId: string | null;
11168
11892
  };
11169
11893
  meta: object;
11170
11894
  }>;
@@ -11190,6 +11914,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11190
11914
  discussionsEnabled: boolean;
11191
11915
  studentsCanCreateDiscussions: boolean;
11192
11916
  studentsCanReply: boolean;
11917
+ treatMissingAsZero: boolean;
11918
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11193
11919
  };
11194
11920
  markScheme: {
11195
11921
  id: string;
@@ -11228,6 +11954,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11228
11954
  markSchemeId: string | null;
11229
11955
  order: number | null;
11230
11956
  gradingBoundaryId: string | null;
11957
+ gradeCategoryId: string | null;
11231
11958
  };
11232
11959
  attachments: {
11233
11960
  path: string;
@@ -11333,6 +12060,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11333
12060
  discussionsEnabled: boolean;
11334
12061
  studentsCanCreateDiscussions: boolean;
11335
12062
  studentsCanReply: boolean;
12063
+ treatMissingAsZero: boolean;
12064
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11336
12065
  };
11337
12066
  markScheme: {
11338
12067
  id: string;
@@ -11371,6 +12100,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11371
12100
  markSchemeId: string | null;
11372
12101
  order: number | null;
11373
12102
  gradingBoundaryId: string | null;
12103
+ gradeCategoryId: string | null;
11374
12104
  };
11375
12105
  attachments: {
11376
12106
  path: string;
@@ -11497,6 +12227,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11497
12227
  discussionsEnabled: boolean;
11498
12228
  studentsCanCreateDiscussions: boolean;
11499
12229
  studentsCanReply: boolean;
12230
+ treatMissingAsZero: boolean;
12231
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11500
12232
  };
11501
12233
  markScheme: {
11502
12234
  id: string;
@@ -11531,6 +12263,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11531
12263
  markSchemeId: string | null;
11532
12264
  order: number | null;
11533
12265
  gradingBoundaryId: string | null;
12266
+ gradeCategoryId: string | null;
11534
12267
  };
11535
12268
  attachments: {
11536
12269
  path: string;
@@ -11607,6 +12340,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11607
12340
  discussionsEnabled: boolean;
11608
12341
  studentsCanCreateDiscussions: boolean;
11609
12342
  studentsCanReply: boolean;
12343
+ treatMissingAsZero: boolean;
12344
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
11610
12345
  };
11611
12346
  markScheme: {
11612
12347
  id: string;
@@ -11641,6 +12376,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11641
12376
  markSchemeId: string | null;
11642
12377
  order: number | null;
11643
12378
  gradingBoundaryId: string | null;
12379
+ gradeCategoryId: string | null;
11644
12380
  };
11645
12381
  attachments: ({
11646
12382
  thumbnail: {
@@ -11998,6 +12734,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11998
12734
  discussionsEnabled: boolean;
11999
12735
  studentsCanCreateDiscussions: boolean;
12000
12736
  studentsCanReply: boolean;
12737
+ treatMissingAsZero: boolean;
12738
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
12001
12739
  };
12002
12740
  markScheme: {
12003
12741
  id: string;
@@ -12032,6 +12770,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12032
12770
  markSchemeId: string | null;
12033
12771
  order: number | null;
12034
12772
  gradingBoundaryId: string | null;
12773
+ gradeCategoryId: string | null;
12035
12774
  };
12036
12775
  attachments: ({
12037
12776
  thumbnail: {
@@ -12237,6 +12976,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12237
12976
  markSchemeId: string | null;
12238
12977
  order: number | null;
12239
12978
  gradingBoundaryId: string | null;
12979
+ gradeCategoryId: string | null;
12240
12980
  };
12241
12981
  };
12242
12982
  meta: object;
@@ -12294,6 +13034,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12294
13034
  markSchemeId: string | null;
12295
13035
  order: number | null;
12296
13036
  gradingBoundaryId: string | null;
13037
+ gradeCategoryId: string | null;
12297
13038
  };
12298
13039
  };
12299
13040
  meta: object;
@@ -12431,6 +13172,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12431
13172
  markSchemeId: string | null;
12432
13173
  order: number | null;
12433
13174
  gradingBoundaryId: string | null;
13175
+ gradeCategoryId: string | null;
12434
13176
  };
12435
13177
  meta: object;
12436
13178
  }>;
@@ -12531,6 +13273,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12531
13273
  markSchemeId: string | null;
12532
13274
  order: number | null;
12533
13275
  gradingBoundaryId: string | null;
13276
+ gradeCategoryId: string | null;
12534
13277
  };
12535
13278
  meta: object;
12536
13279
  }>;
@@ -12632,6 +13375,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12632
13375
  markSchemeId: string | null;
12633
13376
  order: number | null;
12634
13377
  gradingBoundaryId: string | null;
13378
+ gradeCategoryId: string | null;
12635
13379
  };
12636
13380
  meta: object;
12637
13381
  }>;
@@ -12732,6 +13476,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12732
13476
  markSchemeId: string | null;
12733
13477
  order: number | null;
12734
13478
  gradingBoundaryId: string | null;
13479
+ gradeCategoryId: string | null;
12735
13480
  };
12736
13481
  meta: object;
12737
13482
  }>;
@@ -12850,7 +13595,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12850
13595
  createdAt: Date;
12851
13596
  updatedAt: Date;
12852
13597
  color: string | null;
12853
- submissionId: string;
13598
+ submissionId: string | null;
12854
13599
  text: string | null;
12855
13600
  authorId: string;
12856
13601
  fileId: string;
@@ -12880,7 +13625,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12880
13625
  createdAt: Date;
12881
13626
  updatedAt: Date;
12882
13627
  color: string | null;
12883
- submissionId: string;
13628
+ submissionId: string | null;
12884
13629
  text: string | null;
12885
13630
  authorId: string;
12886
13631
  fileId: string;
@@ -13140,8 +13885,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13140
13885
  input: {
13141
13886
  [x: string]: unknown;
13142
13887
  classId: string;
13143
- movedId: string;
13144
13888
  position: "end" | "start" | "before" | "after";
13889
+ movedId: string;
13145
13890
  targetId?: string | undefined;
13146
13891
  };
13147
13892
  output: {
@@ -13386,6 +14131,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13386
14131
  discussionsEnabled: boolean;
13387
14132
  studentsCanCreateDiscussions: boolean;
13388
14133
  studentsCanReply: boolean;
14134
+ treatMissingAsZero: boolean;
14135
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
13389
14136
  }) | null;
13390
14137
  assignmentsAttached: {
13391
14138
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -13535,6 +14282,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13535
14282
  markSchemeId: string | null;
13536
14283
  order: number | null;
13537
14284
  gradingBoundaryId: string | null;
14285
+ gradeCategoryId: string | null;
13538
14286
  };
13539
14287
  };
13540
14288
  meta: object;
@@ -13584,6 +14332,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13584
14332
  markSchemeId: string | null;
13585
14333
  order: number | null;
13586
14334
  gradingBoundaryId: string | null;
14335
+ gradeCategoryId: string | null;
13587
14336
  };
13588
14337
  };
13589
14338
  meta: object;
@@ -13780,6 +14529,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13780
14529
  discussionsEnabled: boolean;
13781
14530
  studentsCanCreateDiscussions: boolean;
13782
14531
  studentsCanReply: boolean;
14532
+ treatMissingAsZero: boolean;
14533
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
13783
14534
  } | null;
13784
14535
  assignmentsAttached: {
13785
14536
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -13806,6 +14557,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13806
14557
  markSchemeId: string | null;
13807
14558
  order: number | null;
13808
14559
  gradingBoundaryId: string | null;
14560
+ gradeCategoryId: string | null;
13809
14561
  }[];
13810
14562
  } & {
13811
14563
  id: string;
@@ -13832,6 +14584,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13832
14584
  discussionsEnabled: boolean;
13833
14585
  studentsCanCreateDiscussions: boolean;
13834
14586
  studentsCanReply: boolean;
14587
+ treatMissingAsZero: boolean;
14588
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
13835
14589
  } | null;
13836
14590
  assignmentsAttached: {
13837
14591
  type: import(".prisma/client").$Enums.AssignmentType;
@@ -13858,6 +14612,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13858
14612
  markSchemeId: string | null;
13859
14613
  order: number | null;
13860
14614
  gradingBoundaryId: string | null;
14615
+ gradeCategoryId: string | null;
13861
14616
  }[];
13862
14617
  } & {
13863
14618
  id: string;
@@ -13946,47 +14701,113 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13946
14701
  rename: import("@trpc/server").TRPCMutationProcedure<{
13947
14702
  input: {
13948
14703
  fileId: string;
13949
- newName: string;
14704
+ newName: string;
14705
+ };
14706
+ output: {
14707
+ user: {
14708
+ id: string;
14709
+ username: string;
14710
+ } | null;
14711
+ } & {
14712
+ path: string;
14713
+ type: string;
14714
+ id: string;
14715
+ userId: string | null;
14716
+ name: string;
14717
+ size: number | null;
14718
+ uploadedAt: Date | null;
14719
+ assignmentId: string | null;
14720
+ submissionId: string | null;
14721
+ thumbnailId: string | null;
14722
+ annotationId: string | null;
14723
+ conversationId: string | null;
14724
+ uploadStatus: import(".prisma/client").$Enums.UploadStatus;
14725
+ uploadUrl: string | null;
14726
+ uploadExpiresAt: Date | null;
14727
+ uploadSessionId: string | null;
14728
+ uploadProgress: number | null;
14729
+ uploadError: string | null;
14730
+ uploadRetryCount: number;
14731
+ isOrphaned: boolean;
14732
+ cleanupAt: Date | null;
14733
+ classDraftId: string | null;
14734
+ folderId: string | null;
14735
+ messageId: string | null;
14736
+ announcementId: string | null;
14737
+ discussionId: string | null;
14738
+ discussionReplyId: string | null;
14739
+ schoolDevelopementProgramId: string | null;
14740
+ };
14741
+ meta: object;
14742
+ }>;
14743
+ delete: import("@trpc/server").TRPCMutationProcedure<{
14744
+ input: {
14745
+ fileId: string;
14746
+ };
14747
+ output: {
14748
+ success: boolean;
14749
+ };
14750
+ meta: object;
14751
+ }>;
14752
+ listAnnotations: import("@trpc/server").TRPCQueryProcedure<{
14753
+ input: {
14754
+ fileId: string;
14755
+ };
14756
+ output: {
14757
+ annotations: ({
14758
+ author: {
14759
+ id: string;
14760
+ username: string;
14761
+ profile: {
14762
+ displayName: string | null;
14763
+ } | null;
14764
+ };
14765
+ } & {
14766
+ type: import(".prisma/client").$Enums.FileAnnotationType;
14767
+ id: string;
14768
+ createdAt: Date;
14769
+ updatedAt: Date;
14770
+ color: string | null;
14771
+ submissionId: string | null;
14772
+ text: string | null;
14773
+ authorId: string;
14774
+ fileId: string;
14775
+ page: number;
14776
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
14777
+ })[];
14778
+ };
14779
+ meta: object;
14780
+ }>;
14781
+ upsertAnnotation: import("@trpc/server").TRPCMutationProcedure<{
14782
+ input: {
14783
+ type: "HIGHLIGHT" | "INK" | "COMMENT" | "TEXT";
14784
+ fileId: string;
14785
+ page: number;
14786
+ geometry: Record<string, unknown>;
14787
+ id?: string | undefined;
14788
+ color?: string | undefined;
14789
+ text?: string | undefined;
13950
14790
  };
13951
14791
  output: {
13952
- user: {
14792
+ annotation: {
14793
+ type: import(".prisma/client").$Enums.FileAnnotationType;
13953
14794
  id: string;
13954
- username: string;
13955
- } | null;
13956
- } & {
13957
- path: string;
13958
- type: string;
13959
- id: string;
13960
- userId: string | null;
13961
- name: string;
13962
- size: number | null;
13963
- uploadedAt: Date | null;
13964
- assignmentId: string | null;
13965
- submissionId: string | null;
13966
- thumbnailId: string | null;
13967
- annotationId: string | null;
13968
- conversationId: string | null;
13969
- uploadStatus: import(".prisma/client").$Enums.UploadStatus;
13970
- uploadUrl: string | null;
13971
- uploadExpiresAt: Date | null;
13972
- uploadSessionId: string | null;
13973
- uploadProgress: number | null;
13974
- uploadError: string | null;
13975
- uploadRetryCount: number;
13976
- isOrphaned: boolean;
13977
- cleanupAt: Date | null;
13978
- classDraftId: string | null;
13979
- folderId: string | null;
13980
- messageId: string | null;
13981
- announcementId: string | null;
13982
- discussionId: string | null;
13983
- discussionReplyId: string | null;
13984
- schoolDevelopementProgramId: string | null;
14795
+ createdAt: Date;
14796
+ updatedAt: Date;
14797
+ color: string | null;
14798
+ submissionId: string | null;
14799
+ text: string | null;
14800
+ authorId: string;
14801
+ fileId: string;
14802
+ page: number;
14803
+ geometry: import("@prisma/client/runtime/library.js").JsonValue;
14804
+ };
13985
14805
  };
13986
14806
  meta: object;
13987
14807
  }>;
13988
- delete: import("@trpc/server").TRPCMutationProcedure<{
14808
+ deleteAnnotation: import("@trpc/server").TRPCMutationProcedure<{
13989
14809
  input: {
14810
+ id: string;
13990
14811
  fileId: string;
13991
14812
  };
13992
14813
  output: {
@@ -15279,6 +16100,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
15279
16100
  discussionsEnabled: boolean;
15280
16101
  studentsCanCreateDiscussions: boolean;
15281
16102
  studentsCanReply: boolean;
16103
+ treatMissingAsZero: boolean;
16104
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
15282
16105
  } | null;
15283
16106
  tags: {
15284
16107
  id: string;
@@ -15515,8 +16338,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
15515
16338
  reorderQuestions: import("@trpc/server").TRPCMutationProcedure<{
15516
16339
  input: {
15517
16340
  worksheetId: string;
15518
- movedId: string;
15519
16341
  position: "before" | "after";
16342
+ movedId: string;
15520
16343
  targetId: string;
15521
16344
  };
15522
16345
  output: {
@@ -16611,6 +17434,23 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16611
17434
  expiresAt: Date;
16612
17435
  role: import(".prisma/client").$Enums.SchoolMembershipRole;
16613
17436
  }[];
17437
+ recentMembers: {
17438
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
17439
+ user: {
17440
+ id: string;
17441
+ username: string;
17442
+ email: string;
17443
+ profile: {
17444
+ profilePicture: string | null;
17445
+ displayName: string | null;
17446
+ profilePictureThumbnail: string | null;
17447
+ } | null;
17448
+ };
17449
+ id: string;
17450
+ createdAt: Date;
17451
+ updatedAt: Date;
17452
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
17453
+ }[];
16614
17454
  };
16615
17455
  };
16616
17456
  meta: object;
@@ -16681,6 +17521,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16681
17521
  discussionsEnabled: boolean;
16682
17522
  studentsCanCreateDiscussions: boolean;
16683
17523
  studentsCanReply: boolean;
17524
+ treatMissingAsZero: boolean;
17525
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
16684
17526
  })[];
16685
17527
  };
16686
17528
  meta: object;
@@ -16732,6 +17574,40 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16732
17574
  discussionsEnabled: boolean;
16733
17575
  studentsCanCreateDiscussions: boolean;
16734
17576
  studentsCanReply: boolean;
17577
+ treatMissingAsZero: boolean;
17578
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
17579
+ };
17580
+ };
17581
+ meta: object;
17582
+ }>;
17583
+ deleteClass: import("@trpc/server").TRPCMutationProcedure<{
17584
+ input: {
17585
+ schoolId: string;
17586
+ classId: string;
17587
+ };
17588
+ output: {
17589
+ deletedClass: {
17590
+ id: string;
17591
+ };
17592
+ };
17593
+ meta: object;
17594
+ }>;
17595
+ updateClassMembers: import("@trpc/server").TRPCMutationProcedure<{
17596
+ input: {
17597
+ schoolId: string;
17598
+ classId: string;
17599
+ addTeacherIds?: string[] | undefined;
17600
+ removeTeacherIds?: string[] | undefined;
17601
+ addStudentIds?: string[] | undefined;
17602
+ removeStudentIds?: string[] | undefined;
17603
+ };
17604
+ output: {
17605
+ class: {
17606
+ id: string;
17607
+ _count: {
17608
+ teachers: number;
17609
+ students: number;
17610
+ };
16735
17611
  };
16736
17612
  };
16737
17613
  meta: object;
@@ -16809,6 +17685,71 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16809
17685
  };
16810
17686
  meta: object;
16811
17687
  }>;
17688
+ getMemberDetail: import("@trpc/server").TRPCQueryProcedure<{
17689
+ input: {
17690
+ schoolId: string;
17691
+ memberUserId: string;
17692
+ };
17693
+ output: {
17694
+ membership: {
17695
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
17696
+ user: {
17697
+ id: string;
17698
+ username: string;
17699
+ email: string;
17700
+ profile: {
17701
+ profilePicture: string | null;
17702
+ displayName: string | null;
17703
+ profilePictureThumbnail: string | null;
17704
+ } | null;
17705
+ };
17706
+ id: string;
17707
+ createdAt: Date;
17708
+ updatedAt: Date;
17709
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
17710
+ };
17711
+ teachingClasses: {
17712
+ id: string;
17713
+ name: string;
17714
+ section: string;
17715
+ subject: string;
17716
+ color: string | null;
17717
+ teacherCount: number;
17718
+ studentCount: number;
17719
+ }[];
17720
+ enrolledClasses: {
17721
+ id: string;
17722
+ name: string;
17723
+ section: string;
17724
+ subject: string;
17725
+ color: string | null;
17726
+ teacherCount: number;
17727
+ studentCount: number;
17728
+ }[];
17729
+ };
17730
+ meta: object;
17731
+ }>;
17732
+ bulkUpdateMemberRoles: import("@trpc/server").TRPCMutationProcedure<{
17733
+ input: {
17734
+ schoolId: string;
17735
+ role: "ADMIN" | "TEACHER" | "STUDENT";
17736
+ memberUserIds: string[];
17737
+ };
17738
+ output: {
17739
+ updatedCount: number;
17740
+ };
17741
+ meta: object;
17742
+ }>;
17743
+ bulkRemoveMembers: import("@trpc/server").TRPCMutationProcedure<{
17744
+ input: {
17745
+ schoolId: string;
17746
+ memberUserIds: string[];
17747
+ };
17748
+ output: {
17749
+ removedCount: number;
17750
+ };
17751
+ meta: object;
17752
+ }>;
16812
17753
  listInvites: import("@trpc/server").TRPCQueryProcedure<{
16813
17754
  input: {
16814
17755
  schoolId: string;
@@ -18290,6 +19231,26 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18290
19231
  };
18291
19232
  transformer: false;
18292
19233
  }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
19234
+ getOverviewMetrics: import("@trpc/server").TRPCQueryProcedure<{
19235
+ input: void;
19236
+ output: {
19237
+ schools: number;
19238
+ users: number;
19239
+ verifiedUsers: number;
19240
+ classes: number;
19241
+ departments: number;
19242
+ runJobs: {
19243
+ byStatus: {
19244
+ status: import(".prisma/client").$Enums.RunJobStatus;
19245
+ count: number;
19246
+ }[];
19247
+ failedLast24h: number;
19248
+ };
19249
+ earlyAccessRequests: number;
19250
+ pendingDevProgramApplications: number;
19251
+ };
19252
+ meta: object;
19253
+ }>;
18293
19254
  listRunJobs: import("@trpc/server").TRPCQueryProcedure<{
18294
19255
  input: {
18295
19256
  type?: "PDF_TO_WORKSHEET" | "GRADE_WORKSHEET" | "AI_LAB_CHAT" | "AI_NEWTON_CHAT" | "STUDENT_PROGRESS_CHAT" | "EMBED_CONTENT" | undefined;
@@ -18343,6 +19304,74 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18343
19304
  };
18344
19305
  meta: object;
18345
19306
  }>;
19307
+ retryRunJob: import("@trpc/server").TRPCMutationProcedure<{
19308
+ input: {
19309
+ id: string;
19310
+ };
19311
+ output: {
19312
+ runJobId: string;
19313
+ bullJobId: string | null;
19314
+ retriedFrom: string;
19315
+ };
19316
+ meta: object;
19317
+ }>;
19318
+ getSchool: import("@trpc/server").TRPCQueryProcedure<{
19319
+ input: {
19320
+ id: string;
19321
+ };
19322
+ output: {
19323
+ departments: {
19324
+ id: string;
19325
+ name: string;
19326
+ _count: {
19327
+ classes: number;
19328
+ members: number;
19329
+ };
19330
+ color: string | null;
19331
+ }[];
19332
+ _count: {
19333
+ departments: number;
19334
+ memberships: number;
19335
+ classes: number;
19336
+ };
19337
+ memberships: {
19338
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
19339
+ user: {
19340
+ id: string;
19341
+ username: string;
19342
+ email: string;
19343
+ verified: boolean;
19344
+ };
19345
+ id: string;
19346
+ createdAt: Date;
19347
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
19348
+ }[];
19349
+ classes: {
19350
+ department: {
19351
+ id: string;
19352
+ name: string;
19353
+ } | null;
19354
+ section: string;
19355
+ id: string;
19356
+ name: string;
19357
+ _count: {
19358
+ teachers: number;
19359
+ students: number;
19360
+ };
19361
+ color: string | null;
19362
+ subject: string;
19363
+ }[];
19364
+ } & {
19365
+ id: string;
19366
+ createdAt: Date;
19367
+ updatedAt: Date;
19368
+ name: string;
19369
+ description: string | null;
19370
+ logoId: string | null;
19371
+ subdomain: string | null;
19372
+ };
19373
+ meta: object;
19374
+ }>;
18346
19375
  listSchools: import("@trpc/server").TRPCQueryProcedure<{
18347
19376
  input: {
18348
19377
  query?: string | undefined;
@@ -18447,16 +19476,92 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18447
19476
  pageSize?: number | undefined;
18448
19477
  };
18449
19478
  output: {
18450
- items: {
19479
+ items: {
19480
+ id: string;
19481
+ createdAt: Date;
19482
+ email: string;
19483
+ institutionSize: string;
19484
+ }[];
19485
+ total: number;
19486
+ page: number;
19487
+ pageSize: number;
19488
+ pageCount: number;
19489
+ };
19490
+ meta: object;
19491
+ }>;
19492
+ searchUsers: import("@trpc/server").TRPCQueryProcedure<{
19493
+ input: {
19494
+ query?: string | undefined;
19495
+ page?: number | undefined;
19496
+ pageSize?: number | undefined;
19497
+ };
19498
+ output: {
19499
+ items: {
19500
+ school: {
19501
+ id: string;
19502
+ name: string;
19503
+ } | null;
19504
+ id: string;
19505
+ username: string;
19506
+ email: string;
19507
+ verified: boolean;
19508
+ _count: {
19509
+ teacherIn: number;
19510
+ studentIn: number;
19511
+ sessions: number;
19512
+ };
19513
+ }[];
19514
+ total: number;
19515
+ page: number;
19516
+ pageSize: number;
19517
+ pageCount: number;
19518
+ };
19519
+ meta: object;
19520
+ }>;
19521
+ getUser: import("@trpc/server").TRPCQueryProcedure<{
19522
+ input: {
19523
+ id: string;
19524
+ };
19525
+ output: {
19526
+ school: {
18451
19527
  id: string;
19528
+ name: string;
19529
+ subdomain: string | null;
19530
+ } | null;
19531
+ id: string;
19532
+ username: string;
19533
+ email: string;
19534
+ verified: boolean;
19535
+ termsAcceptedAt: Date | null;
19536
+ termsVersion: string | null;
19537
+ profile: {
19538
+ displayName: string | null;
19539
+ location: string | null;
18452
19540
  createdAt: Date;
18453
- email: string;
18454
- institutionSize: string;
19541
+ } | null;
19542
+ sessions: {
19543
+ type: import(".prisma/client").$Enums.SessionType;
19544
+ id: string;
19545
+ createdAt: Date | null;
19546
+ expiresAt: Date | null;
18455
19547
  }[];
18456
- total: number;
18457
- page: number;
18458
- pageSize: number;
18459
- pageCount: number;
19548
+ schoolMemberships: {
19549
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
19550
+ school: {
19551
+ id: string;
19552
+ name: string;
19553
+ };
19554
+ id: string;
19555
+ createdAt: Date;
19556
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
19557
+ }[];
19558
+ _count: {
19559
+ teacherIn: number;
19560
+ studentIn: number;
19561
+ submissions: number;
19562
+ sessions: number;
19563
+ files: number;
19564
+ };
18460
19565
  };
18461
19566
  meta: object;
18462
19567
  }>;
@@ -18517,5 +19622,302 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
18517
19622
  meta: object;
18518
19623
  }>;
18519
19624
  }>>;
19625
+ gradebook: import("@trpc/server").TRPCBuiltRouter<{
19626
+ ctx: import("../trpc.js").Context;
19627
+ meta: object;
19628
+ errorShape: {
19629
+ data: {
19630
+ zodError: import("zod").typeToFlattenedError<any, string> | null;
19631
+ prismaError: import("../utils/prismaErrorHandler.js").PrismaErrorInfo | null;
19632
+ code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
19633
+ httpStatus: number;
19634
+ path?: string;
19635
+ stack?: string;
19636
+ };
19637
+ message: string;
19638
+ code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
19639
+ };
19640
+ transformer: false;
19641
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
19642
+ listCategories: import("@trpc/server").TRPCQueryProcedure<{
19643
+ input: {
19644
+ [x: string]: unknown;
19645
+ classId: string;
19646
+ };
19647
+ output: {
19648
+ id: string;
19649
+ name: string;
19650
+ classId: string;
19651
+ weight: number;
19652
+ dropLowest: number;
19653
+ position: number;
19654
+ }[];
19655
+ meta: object;
19656
+ }>;
19657
+ createCategory: import("@trpc/server").TRPCMutationProcedure<{
19658
+ input: {
19659
+ [x: string]: unknown;
19660
+ classId: string;
19661
+ name: string;
19662
+ weight: number;
19663
+ dropLowest?: number | undefined;
19664
+ position?: number | undefined;
19665
+ };
19666
+ output: {
19667
+ id: string;
19668
+ name: string;
19669
+ classId: string;
19670
+ weight: number;
19671
+ dropLowest: number;
19672
+ position: number;
19673
+ };
19674
+ meta: object;
19675
+ }>;
19676
+ updateCategory: import("@trpc/server").TRPCMutationProcedure<{
19677
+ input: {
19678
+ [x: string]: unknown;
19679
+ classId: string;
19680
+ categoryId: string;
19681
+ name?: string | undefined;
19682
+ weight?: number | undefined;
19683
+ dropLowest?: number | undefined;
19684
+ position?: number | undefined;
19685
+ };
19686
+ output: {
19687
+ id: string;
19688
+ name: string;
19689
+ classId: string;
19690
+ weight: number;
19691
+ dropLowest: number;
19692
+ position: number;
19693
+ };
19694
+ meta: object;
19695
+ }>;
19696
+ deleteCategory: import("@trpc/server").TRPCMutationProcedure<{
19697
+ input: {
19698
+ [x: string]: unknown;
19699
+ classId: string;
19700
+ categoryId: string;
19701
+ };
19702
+ output: {
19703
+ id: string;
19704
+ name: string;
19705
+ classId: string;
19706
+ weight: number;
19707
+ dropLowest: number;
19708
+ position: number;
19709
+ };
19710
+ meta: object;
19711
+ }>;
19712
+ assignCategory: import("@trpc/server").TRPCMutationProcedure<{
19713
+ input: {
19714
+ [x: string]: unknown;
19715
+ classId: string;
19716
+ assignmentId: string;
19717
+ gradeCategoryId: string | null;
19718
+ };
19719
+ output: {
19720
+ type: import(".prisma/client").$Enums.AssignmentType;
19721
+ id: string;
19722
+ createdAt: Date | null;
19723
+ classId: string;
19724
+ title: string;
19725
+ dueDate: Date;
19726
+ maxGrade: number | null;
19727
+ eventId: string | null;
19728
+ instructions: string;
19729
+ modifiedAt: Date | null;
19730
+ teacherId: string;
19731
+ acceptFiles: boolean;
19732
+ acceptExtendedResponse: boolean;
19733
+ acceptWorksheet: boolean;
19734
+ gradeWithAI: boolean;
19735
+ aiPolicyLevel: number;
19736
+ sectionId: string | null;
19737
+ graded: boolean;
19738
+ weight: number;
19739
+ inProgress: boolean;
19740
+ template: boolean;
19741
+ markSchemeId: string | null;
19742
+ order: number | null;
19743
+ gradingBoundaryId: string | null;
19744
+ gradeCategoryId: string | null;
19745
+ };
19746
+ meta: object;
19747
+ }>;
19748
+ listColumns: import("@trpc/server").TRPCQueryProcedure<{
19749
+ input: {
19750
+ [x: string]: unknown;
19751
+ classId: string;
19752
+ };
19753
+ output: ({
19754
+ entries: {
19755
+ id: string;
19756
+ points: number;
19757
+ studentId: string;
19758
+ note: string | null;
19759
+ }[];
19760
+ } & {
19761
+ id: string;
19762
+ name: string;
19763
+ classId: string;
19764
+ gradeCategoryId: string | null;
19765
+ position: number;
19766
+ maxPoints: number;
19767
+ })[];
19768
+ meta: object;
19769
+ }>;
19770
+ createColumn: import("@trpc/server").TRPCMutationProcedure<{
19771
+ input: {
19772
+ [x: string]: unknown;
19773
+ classId: string;
19774
+ name: string;
19775
+ maxPoints: number;
19776
+ gradeCategoryId?: string | null | undefined;
19777
+ position?: number | undefined;
19778
+ };
19779
+ output: {
19780
+ id: string;
19781
+ name: string;
19782
+ classId: string;
19783
+ gradeCategoryId: string | null;
19784
+ position: number;
19785
+ maxPoints: number;
19786
+ };
19787
+ meta: object;
19788
+ }>;
19789
+ updateColumn: import("@trpc/server").TRPCMutationProcedure<{
19790
+ input: {
19791
+ [x: string]: unknown;
19792
+ classId: string;
19793
+ columnId: string;
19794
+ name?: string | undefined;
19795
+ gradeCategoryId?: string | null | undefined;
19796
+ position?: number | undefined;
19797
+ maxPoints?: number | undefined;
19798
+ };
19799
+ output: {
19800
+ id: string;
19801
+ name: string;
19802
+ classId: string;
19803
+ gradeCategoryId: string | null;
19804
+ position: number;
19805
+ maxPoints: number;
19806
+ };
19807
+ meta: object;
19808
+ }>;
19809
+ deleteColumn: import("@trpc/server").TRPCMutationProcedure<{
19810
+ input: {
19811
+ [x: string]: unknown;
19812
+ classId: string;
19813
+ columnId: string;
19814
+ };
19815
+ output: {
19816
+ id: string;
19817
+ name: string;
19818
+ classId: string;
19819
+ gradeCategoryId: string | null;
19820
+ position: number;
19821
+ maxPoints: number;
19822
+ };
19823
+ meta: object;
19824
+ }>;
19825
+ setEntry: import("@trpc/server").TRPCMutationProcedure<{
19826
+ input: {
19827
+ [x: string]: unknown;
19828
+ classId: string;
19829
+ points: number | null;
19830
+ studentId: string;
19831
+ columnId: string;
19832
+ note?: string | null | undefined;
19833
+ };
19834
+ output: {
19835
+ id: string;
19836
+ points: number;
19837
+ studentId: string;
19838
+ columnId: string;
19839
+ note: string | null;
19840
+ } | null;
19841
+ meta: object;
19842
+ }>;
19843
+ getPolicies: import("@trpc/server").TRPCQueryProcedure<{
19844
+ input: {
19845
+ [x: string]: unknown;
19846
+ classId: string;
19847
+ };
19848
+ output: {
19849
+ id: string;
19850
+ treatMissingAsZero: boolean;
19851
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
19852
+ };
19853
+ meta: object;
19854
+ }>;
19855
+ updatePolicies: import("@trpc/server").TRPCMutationProcedure<{
19856
+ input: {
19857
+ [x: string]: unknown;
19858
+ classId: string;
19859
+ treatMissingAsZero?: boolean | undefined;
19860
+ gradeRoundingMode?: "NONE" | "HALF_UP" | "FLOOR" | "CEILING" | undefined;
19861
+ };
19862
+ output: {
19863
+ id: string;
19864
+ treatMissingAsZero: boolean;
19865
+ gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
19866
+ };
19867
+ meta: object;
19868
+ }>;
19869
+ getComputed: import("@trpc/server").TRPCQueryProcedure<{
19870
+ input: {
19871
+ [x: string]: unknown;
19872
+ classId: string;
19873
+ };
19874
+ output: {
19875
+ policies: {
19876
+ treatMissingAsZero: boolean;
19877
+ roundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
19878
+ };
19879
+ categories: {
19880
+ id: string;
19881
+ name: string;
19882
+ classId: string;
19883
+ weight: number;
19884
+ dropLowest: number;
19885
+ position: number;
19886
+ }[];
19887
+ assignments: {
19888
+ id: string;
19889
+ title: string;
19890
+ maxGrade: number | null;
19891
+ weight: number;
19892
+ gradeCategoryId: string | null;
19893
+ dueDate: Date;
19894
+ }[];
19895
+ customColumns: {
19896
+ id: string;
19897
+ name: string;
19898
+ maxPoints: number;
19899
+ gradeCategoryId: string | null;
19900
+ position: number;
19901
+ }[];
19902
+ gradingBoundary: {
19903
+ id: string;
19904
+ name: string | null;
19905
+ structured: string;
19906
+ };
19907
+ students: import("../services/gradebook.js").GradebookStudentRow[];
19908
+ };
19909
+ meta: object;
19910
+ }>;
19911
+ exportCsv: import("@trpc/server").TRPCQueryProcedure<{
19912
+ input: {
19913
+ [x: string]: unknown;
19914
+ classId: string;
19915
+ };
19916
+ output: {
19917
+ csv: string;
19918
+ };
19919
+ meta: object;
19920
+ }>;
19921
+ }>>;
18520
19922
  }>>;
18521
19923
  //# sourceMappingURL=_app.d.ts.map