@studious-lms/server 1.16.0 → 1.17.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 (157) hide show
  1. package/.github/workflows/deploy.yml +1 -1
  2. package/dist/instrument.js +3 -3
  3. package/dist/instrument.js.map +1 -1
  4. package/dist/lib/chatAttachmentPrompt.d.ts +47 -0
  5. package/dist/lib/chatAttachmentPrompt.d.ts.map +1 -0
  6. package/dist/lib/chatAttachmentPrompt.js +190 -0
  7. package/dist/lib/chatAttachmentPrompt.js.map +1 -0
  8. package/dist/lib/inferDocumentFormat.js +3 -3
  9. package/dist/lib/inferDocumentFormat.js.map +1 -1
  10. package/dist/lib/legal.d.ts +3 -0
  11. package/dist/lib/legal.d.ts.map +1 -0
  12. package/dist/lib/legal.js +6 -0
  13. package/dist/lib/legal.js.map +1 -0
  14. package/dist/models/announcement.d.ts +2 -0
  15. package/dist/models/announcement.d.ts.map +1 -1
  16. package/dist/models/auth.d.ts +8 -0
  17. package/dist/models/auth.d.ts.map +1 -1
  18. package/dist/models/auth.js +4 -2
  19. package/dist/models/auth.js.map +1 -1
  20. package/dist/models/event.d.ts +2 -0
  21. package/dist/models/event.d.ts.map +1 -1
  22. package/dist/models/file.d.ts +24 -0
  23. package/dist/models/file.d.ts.map +1 -1
  24. package/dist/models/marketing.d.ts +2 -15
  25. package/dist/models/marketing.d.ts.map +1 -1
  26. package/dist/models/marketing.js +12 -4
  27. package/dist/models/marketing.js.map +1 -1
  28. package/dist/pipelines/aiLabChat.d.ts.map +1 -1
  29. package/dist/pipelines/aiLabChat.js +39 -59
  30. package/dist/pipelines/aiLabChat.js.map +1 -1
  31. package/dist/pipelines/aiLabChatContract.d.ts +2 -2
  32. package/dist/pipelines/aiNewtonChat.d.ts +1 -1
  33. package/dist/pipelines/aiNewtonChat.d.ts.map +1 -1
  34. package/dist/pipelines/aiNewtonChat.js +20 -19
  35. package/dist/pipelines/aiNewtonChat.js.map +1 -1
  36. package/dist/pipelines/gradeWorksheet.d.ts +1 -0
  37. package/dist/pipelines/gradeWorksheet.d.ts.map +1 -1
  38. package/dist/pipelines/gradeWorksheet.js +84 -13
  39. package/dist/pipelines/gradeWorksheet.js.map +1 -1
  40. package/dist/pipelines/labChatPrompt.d.ts +4 -20
  41. package/dist/pipelines/labChatPrompt.d.ts.map +1 -1
  42. package/dist/pipelines/labChatPrompt.js +24 -64
  43. package/dist/pipelines/labChatPrompt.js.map +1 -1
  44. package/dist/routers/_app.d.ts +440 -26
  45. package/dist/routers/_app.d.ts.map +1 -1
  46. package/dist/routers/assignment.d.ts +10 -0
  47. package/dist/routers/assignment.d.ts.map +1 -1
  48. package/dist/routers/auth.d.ts +2 -0
  49. package/dist/routers/auth.d.ts.map +1 -1
  50. package/dist/routers/auth.js +15 -2
  51. package/dist/routers/auth.js.map +1 -1
  52. package/dist/routers/class.d.ts +4 -0
  53. package/dist/routers/class.d.ts.map +1 -1
  54. package/dist/routers/event.d.ts +2 -0
  55. package/dist/routers/event.d.ts.map +1 -1
  56. package/dist/routers/marketing.d.ts +0 -13
  57. package/dist/routers/marketing.d.ts.map +1 -1
  58. package/dist/routers/school.d.ts +106 -0
  59. package/dist/routers/school.d.ts.map +1 -1
  60. package/dist/routers/school.js +11 -3
  61. package/dist/routers/school.js.map +1 -1
  62. package/dist/routers/user.d.ts +89 -0
  63. package/dist/routers/user.d.ts.map +1 -1
  64. package/dist/routers/user.js +19 -2
  65. package/dist/routers/user.js.map +1 -1
  66. package/dist/routers/worksheet.d.ts +7 -0
  67. package/dist/routers/worksheet.d.ts.map +1 -1
  68. package/dist/routers/worksheet.js +8 -3
  69. package/dist/routers/worksheet.js.map +1 -1
  70. package/dist/seedDatabase.d.ts +2 -0
  71. package/dist/seedDatabase.d.ts.map +1 -1
  72. package/dist/services/aiChatStream.d.ts +2 -0
  73. package/dist/services/aiChatStream.d.ts.map +1 -1
  74. package/dist/services/aiChatStream.js +31 -4
  75. package/dist/services/aiChatStream.js.map +1 -1
  76. package/dist/services/aiProposalTools.d.ts.map +1 -1
  77. package/dist/services/aiProposalTools.js +9 -9
  78. package/dist/services/aiProposalTools.js.map +1 -1
  79. package/dist/services/aiTools.js +3 -3
  80. package/dist/services/aiTools.js.map +1 -1
  81. package/dist/services/assignment.d.ts +10 -0
  82. package/dist/services/assignment.d.ts.map +1 -1
  83. package/dist/services/auth.d.ts +2 -0
  84. package/dist/services/auth.d.ts.map +1 -1
  85. package/dist/services/auth.js +13 -4
  86. package/dist/services/auth.js.map +1 -1
  87. package/dist/services/class.d.ts +4 -0
  88. package/dist/services/class.d.ts.map +1 -1
  89. package/dist/services/event.d.ts +2 -0
  90. package/dist/services/event.d.ts.map +1 -1
  91. package/dist/services/marketing.d.ts +1 -14
  92. package/dist/services/marketing.d.ts.map +1 -1
  93. package/dist/services/marketing.js +5 -5
  94. package/dist/services/marketing.js.map +1 -1
  95. package/dist/services/newtonChat.d.ts.map +1 -1
  96. package/dist/services/newtonChat.js +2 -8
  97. package/dist/services/newtonChat.js.map +1 -1
  98. package/dist/services/openaiDocumentGen.d.ts +12 -0
  99. package/dist/services/openaiDocumentGen.d.ts.map +1 -1
  100. package/dist/services/openaiDocumentGen.js +173 -65
  101. package/dist/services/openaiDocumentGen.js.map +1 -1
  102. package/dist/services/school.d.ts +116 -0
  103. package/dist/services/school.d.ts.map +1 -1
  104. package/dist/services/school.js +213 -2
  105. package/dist/services/school.js.map +1 -1
  106. package/dist/services/userPrivacy.d.ts +86 -0
  107. package/dist/services/userPrivacy.d.ts.map +1 -0
  108. package/dist/services/userPrivacy.js +184 -0
  109. package/dist/services/userPrivacy.js.map +1 -0
  110. package/dist/services/worksheet.d.ts +1 -0
  111. package/dist/services/worksheet.d.ts.map +1 -1
  112. package/dist/services/worksheet.js +13 -3
  113. package/dist/services/worksheet.js.map +1 -1
  114. package/dist/utils/email.d.ts.map +1 -1
  115. package/dist/utils/email.js +7 -3
  116. package/dist/utils/email.js.map +1 -1
  117. package/dist/workers/processors/aiNewtonChat.d.ts.map +1 -1
  118. package/dist/workers/processors/aiNewtonChat.js +3 -3
  119. package/dist/workers/processors/aiNewtonChat.js.map +1 -1
  120. package/package.json +2 -1
  121. package/prisma/migrations/20260611120000_add_user_terms_acceptance/migration.sql +3 -0
  122. package/prisma/schema.prisma +3 -0
  123. package/src/instrument.ts +1 -1
  124. package/src/lib/chatAttachmentPrompt.ts +270 -0
  125. package/src/lib/inferDocumentFormat.ts +1 -1
  126. package/src/lib/legal.ts +2 -0
  127. package/src/models/auth.ts +4 -0
  128. package/src/models/marketing.ts +10 -2
  129. package/src/pipelines/aiLabChat.ts +46 -71
  130. package/src/pipelines/aiNewtonChat.ts +20 -23
  131. package/src/pipelines/gradeWorksheet.ts +87 -11
  132. package/src/pipelines/labChatPrompt.ts +29 -98
  133. package/src/routers/auth.ts +13 -0
  134. package/src/routers/school.ts +12 -0
  135. package/src/routers/user.ts +26 -0
  136. package/src/routers/worksheet.ts +11 -0
  137. package/src/services/aiChatStream.ts +30 -3
  138. package/src/services/aiProposalTools.ts +8 -7
  139. package/src/services/aiTools.ts +1 -1
  140. package/src/services/auth.ts +14 -2
  141. package/src/services/marketing.ts +3 -3
  142. package/src/services/newtonChat.ts +0 -7
  143. package/src/services/openaiDocumentGen.ts +190 -66
  144. package/src/services/school.ts +231 -0
  145. package/src/services/userPrivacy.ts +196 -0
  146. package/src/services/worksheet.ts +20 -1
  147. package/src/utils/email.ts +5 -1
  148. package/src/workers/processors/aiNewtonChat.ts +0 -1
  149. package/tests/helpers/registerInput.ts +20 -0
  150. package/tests/integration/globalSetup.ts +10 -18
  151. package/tests/integration/routers/auth.test.ts +13 -18
  152. package/tests/integration/routers/newtonChat.test.ts +9 -8
  153. package/tests/unit/lib/chatAttachmentPrompt.test.ts +135 -0
  154. package/tests/unit/lib/inferDocumentFormat.test.ts +10 -0
  155. package/tests/unit/pipelines/labChatPrompt.test.ts +6 -6
  156. package/tests/unit/services/aiChatStream.test.ts +92 -0
  157. package/tests/unit/services/openaiDocumentGen.test.ts +65 -0
@@ -314,6 +314,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
314
314
  email: string;
315
315
  password: string;
316
316
  verified: boolean;
317
+ termsAcceptedAt: Date | null;
318
+ termsVersion: string | null;
317
319
  schoolId: string | null;
318
320
  }[];
319
321
  students: {
@@ -322,6 +324,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
322
324
  email: string;
323
325
  password: string;
324
326
  verified: boolean;
327
+ termsAcceptedAt: Date | null;
328
+ termsVersion: string | null;
325
329
  schoolId: string | null;
326
330
  }[];
327
331
  } & {
@@ -1788,6 +1792,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1788
1792
  email: string;
1789
1793
  password: string;
1790
1794
  verified: boolean;
1795
+ termsAcceptedAt: Date | null;
1796
+ termsVersion: string | null;
1791
1797
  schoolId: string | null;
1792
1798
  };
1793
1799
  };
@@ -3107,6 +3113,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3107
3113
  email: string;
3108
3114
  password: string;
3109
3115
  verified: boolean;
3116
+ termsAcceptedAt: Date | null;
3117
+ termsVersion: string | null;
3110
3118
  schoolId: string | null;
3111
3119
  };
3112
3120
  eventAttached: {
@@ -3205,6 +3213,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3205
3213
  email: string;
3206
3214
  password: string;
3207
3215
  verified: boolean;
3216
+ termsAcceptedAt: Date | null;
3217
+ termsVersion: string | null;
3208
3218
  schoolId: string | null;
3209
3219
  };
3210
3220
  eventAttached: {
@@ -3304,6 +3314,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3304
3314
  email: string;
3305
3315
  password: string;
3306
3316
  verified: boolean;
3317
+ termsAcceptedAt: Date | null;
3318
+ termsVersion: string | null;
3307
3319
  schoolId: string | null;
3308
3320
  };
3309
3321
  eventAttached: {
@@ -3402,6 +3414,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3402
3414
  email: string;
3403
3415
  password: string;
3404
3416
  verified: boolean;
3417
+ termsAcceptedAt: Date | null;
3418
+ termsVersion: string | null;
3405
3419
  schoolId: string | null;
3406
3420
  };
3407
3421
  eventAttached: {
@@ -3625,6 +3639,95 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3625
3639
  };
3626
3640
  meta: object;
3627
3641
  }>;
3642
+ exportData: import("@trpc/server").TRPCQueryProcedure<{
3643
+ input: void;
3644
+ output: {
3645
+ exportedAt: string;
3646
+ user: {
3647
+ id: string;
3648
+ username: string;
3649
+ email: string;
3650
+ verified: boolean;
3651
+ termsAcceptedAt: Date | null;
3652
+ termsVersion: string | null;
3653
+ profile: {
3654
+ id: string;
3655
+ userId: string;
3656
+ displayName: string | null;
3657
+ bio: string | null;
3658
+ location: string | null;
3659
+ website: string | null;
3660
+ createdAt: Date;
3661
+ updatedAt: Date;
3662
+ profilePicture: string | null;
3663
+ profilePictureThumbnail: string | null;
3664
+ } | null;
3665
+ teacherIn: {
3666
+ section: string;
3667
+ id: string;
3668
+ name: string;
3669
+ subject: string;
3670
+ }[];
3671
+ studentIn: {
3672
+ section: string;
3673
+ id: string;
3674
+ name: string;
3675
+ subject: string;
3676
+ }[];
3677
+ submissions: {
3678
+ assignment: {
3679
+ id: string;
3680
+ classId: string;
3681
+ title: string;
3682
+ };
3683
+ id: string;
3684
+ createdAt: Date;
3685
+ extendedResponse: string | null;
3686
+ gradeReceived: number | null;
3687
+ submittedAt: Date | null;
3688
+ }[];
3689
+ events: {
3690
+ id: string;
3691
+ location: string | null;
3692
+ name: string | null;
3693
+ startTime: Date;
3694
+ endTime: Date;
3695
+ remarks: string | null;
3696
+ }[];
3697
+ notificationsReceived: {
3698
+ id: string;
3699
+ createdAt: Date;
3700
+ title: string;
3701
+ content: string;
3702
+ read: boolean;
3703
+ }[];
3704
+ schoolMemberships: {
3705
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
3706
+ school: {
3707
+ id: string;
3708
+ name: string;
3709
+ };
3710
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
3711
+ }[];
3712
+ sentMessages: {
3713
+ id: string;
3714
+ createdAt: Date;
3715
+ content: string;
3716
+ conversationId: string;
3717
+ }[];
3718
+ };
3719
+ };
3720
+ meta: object;
3721
+ }>;
3722
+ deleteAccount: import("@trpc/server").TRPCMutationProcedure<{
3723
+ input: {
3724
+ confirmUsername: string;
3725
+ };
3726
+ output: {
3727
+ success: boolean;
3728
+ };
3729
+ meta: object;
3730
+ }>;
3628
3731
  }>>;
3629
3732
  section: import("@trpc/server").TRPCBuiltRouter<{
3630
3733
  ctx: import("../trpc.js").Context;
@@ -3882,6 +3985,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
3882
3985
  email: string;
3883
3986
  password: string;
3884
3987
  verified: boolean;
3988
+ termsAcceptedAt: Date | null;
3989
+ termsVersion: string | null;
3885
3990
  schoolId: string | null;
3886
3991
  } | null;
3887
3992
  class: ({
@@ -4172,7 +4277,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4172
4277
  username: string;
4173
4278
  email: string;
4174
4279
  password: string;
4280
+ termsVersion: "2025-11";
4175
4281
  confirmPassword: string;
4282
+ agreeToTerms: true;
4176
4283
  };
4177
4284
  output: {
4178
4285
  user: {
@@ -5746,25 +5853,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5746
5853
  id: string;
5747
5854
  };
5748
5855
  output: {
5749
- type: string;
5750
5856
  status: string;
5751
5857
  id: string;
5752
- website: string | null;
5753
5858
  name: string;
5754
5859
  submittedAt: Date | null;
5755
- address: string;
5756
5860
  city: string;
5757
5861
  country: string;
5758
- numberOfStudents: number;
5759
- numberOfTeachers: number;
5760
- contactName: string | null;
5761
- contactRole: string | null;
5762
- contactEmail: string | null;
5763
- contactPhone: string | null;
5764
- eligibilityInformation: string | null;
5765
- whyHelp: string | null;
5766
- additionalInformation: string | null;
5767
- reviewedAt: Date | null;
5768
5862
  } | null;
5769
5863
  meta: object;
5770
5864
  }>;
@@ -6219,6 +6313,13 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
6219
6313
  } | null;
6220
6314
  meta: object;
6221
6315
  }>;
6316
+ regradeAll: import("@trpc/server").TRPCMutationProcedure<{
6317
+ input: {
6318
+ worksheetResponseId: string;
6319
+ };
6320
+ output: void;
6321
+ meta: object;
6322
+ }>;
6222
6323
  gradeAnswer: import("@trpc/server").TRPCMutationProcedure<{
6223
6324
  input: {
6224
6325
  isCorrect: boolean;
@@ -7000,6 +7101,108 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7000
7101
  };
7001
7102
  meta: object;
7002
7103
  }>;
7104
+ getMemberTimeline: import("@trpc/server").TRPCQueryProcedure<{
7105
+ input: {
7106
+ schoolId: string;
7107
+ memberId: string;
7108
+ from?: Date | undefined;
7109
+ to?: Date | undefined;
7110
+ };
7111
+ output: {
7112
+ role: "STUDENT";
7113
+ member: {
7114
+ id: string;
7115
+ username: string;
7116
+ profile: {
7117
+ profilePicture: string | null;
7118
+ displayName: string | null;
7119
+ } | null;
7120
+ };
7121
+ events: {
7122
+ class: {
7123
+ id: string;
7124
+ name: string;
7125
+ color: string | null;
7126
+ } | null;
7127
+ id: string;
7128
+ location: string | null;
7129
+ name: string | null;
7130
+ color: string | null;
7131
+ startTime: Date;
7132
+ endTime: Date;
7133
+ remarks: string | null;
7134
+ }[];
7135
+ assignments: {
7136
+ type: import(".prisma/client").$Enums.AssignmentType;
7137
+ class: {
7138
+ section: string;
7139
+ id: string;
7140
+ name: string;
7141
+ color: string | null;
7142
+ subject: string;
7143
+ };
7144
+ id: string;
7145
+ submissions: {
7146
+ id: string;
7147
+ gradeReceived: number | null;
7148
+ submittedAt: Date | null;
7149
+ submitted: boolean | null;
7150
+ returned: boolean | null;
7151
+ }[];
7152
+ title: string;
7153
+ dueDate: Date;
7154
+ maxGrade: number | null;
7155
+ graded: boolean;
7156
+ weight: number;
7157
+ }[];
7158
+ attendance: {
7159
+ id: string;
7160
+ date: Date;
7161
+ class: {
7162
+ id: string;
7163
+ name: string;
7164
+ color: string | null;
7165
+ };
7166
+ status: "PRESENT" | "LATE" | "ABSENT";
7167
+ }[];
7168
+ classes?: undefined;
7169
+ } | {
7170
+ role: "TEACHER" | "ADMIN";
7171
+ member: {
7172
+ id: string;
7173
+ username: string;
7174
+ profile: {
7175
+ profilePicture: string | null;
7176
+ displayName: string | null;
7177
+ } | null;
7178
+ };
7179
+ events: {
7180
+ class: {
7181
+ id: string;
7182
+ name: string;
7183
+ color: string | null;
7184
+ } | null;
7185
+ id: string;
7186
+ location: string | null;
7187
+ name: string | null;
7188
+ color: string | null;
7189
+ startTime: Date;
7190
+ endTime: Date;
7191
+ remarks: string | null;
7192
+ }[];
7193
+ classes: {
7194
+ id: string;
7195
+ name: string;
7196
+ section: string;
7197
+ subject: string;
7198
+ color: string | null;
7199
+ studentCount: number;
7200
+ }[];
7201
+ assignments?: undefined;
7202
+ attendance?: undefined;
7203
+ };
7204
+ meta: object;
7205
+ }>;
7003
7206
  getAdminOverview: import("@trpc/server").TRPCQueryProcedure<{
7004
7207
  input: {
7005
7208
  schoolId: string;
@@ -7097,6 +7300,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7097
7300
  email: string;
7098
7301
  password: string;
7099
7302
  verified: boolean;
7303
+ termsAcceptedAt: Date | null;
7304
+ termsVersion: string | null;
7100
7305
  schoolId: string | null;
7101
7306
  }[];
7102
7307
  students: {
@@ -7105,6 +7310,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
7105
7310
  email: string;
7106
7311
  password: string;
7107
7312
  verified: boolean;
7313
+ termsAcceptedAt: Date | null;
7314
+ termsVersion: string | null;
7108
7315
  schoolId: string | null;
7109
7316
  }[];
7110
7317
  } & {
@@ -9223,6 +9430,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9223
9430
  email: string;
9224
9431
  password: string;
9225
9432
  verified: boolean;
9433
+ termsAcceptedAt: Date | null;
9434
+ termsVersion: string | null;
9226
9435
  schoolId: string | null;
9227
9436
  }[];
9228
9437
  students: {
@@ -9231,6 +9440,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
9231
9440
  email: string;
9232
9441
  password: string;
9233
9442
  verified: boolean;
9443
+ termsAcceptedAt: Date | null;
9444
+ termsVersion: string | null;
9234
9445
  schoolId: string | null;
9235
9446
  }[];
9236
9447
  } & {
@@ -10697,6 +10908,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10697
10908
  email: string;
10698
10909
  password: string;
10699
10910
  verified: boolean;
10911
+ termsAcceptedAt: Date | null;
10912
+ termsVersion: string | null;
10700
10913
  schoolId: string | null;
10701
10914
  };
10702
10915
  };
@@ -12016,6 +12229,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12016
12229
  email: string;
12017
12230
  password: string;
12018
12231
  verified: boolean;
12232
+ termsAcceptedAt: Date | null;
12233
+ termsVersion: string | null;
12019
12234
  schoolId: string | null;
12020
12235
  };
12021
12236
  eventAttached: {
@@ -12114,6 +12329,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12114
12329
  email: string;
12115
12330
  password: string;
12116
12331
  verified: boolean;
12332
+ termsAcceptedAt: Date | null;
12333
+ termsVersion: string | null;
12117
12334
  schoolId: string | null;
12118
12335
  };
12119
12336
  eventAttached: {
@@ -12213,6 +12430,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12213
12430
  email: string;
12214
12431
  password: string;
12215
12432
  verified: boolean;
12433
+ termsAcceptedAt: Date | null;
12434
+ termsVersion: string | null;
12216
12435
  schoolId: string | null;
12217
12436
  };
12218
12437
  eventAttached: {
@@ -12311,6 +12530,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12311
12530
  email: string;
12312
12531
  password: string;
12313
12532
  verified: boolean;
12533
+ termsAcceptedAt: Date | null;
12534
+ termsVersion: string | null;
12314
12535
  schoolId: string | null;
12315
12536
  };
12316
12537
  eventAttached: {
@@ -12534,6 +12755,95 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12534
12755
  };
12535
12756
  meta: object;
12536
12757
  }>;
12758
+ exportData: import("@trpc/server").TRPCQueryProcedure<{
12759
+ input: void;
12760
+ output: {
12761
+ exportedAt: string;
12762
+ user: {
12763
+ id: string;
12764
+ username: string;
12765
+ email: string;
12766
+ verified: boolean;
12767
+ termsAcceptedAt: Date | null;
12768
+ termsVersion: string | null;
12769
+ profile: {
12770
+ id: string;
12771
+ userId: string;
12772
+ displayName: string | null;
12773
+ bio: string | null;
12774
+ location: string | null;
12775
+ website: string | null;
12776
+ createdAt: Date;
12777
+ updatedAt: Date;
12778
+ profilePicture: string | null;
12779
+ profilePictureThumbnail: string | null;
12780
+ } | null;
12781
+ teacherIn: {
12782
+ section: string;
12783
+ id: string;
12784
+ name: string;
12785
+ subject: string;
12786
+ }[];
12787
+ studentIn: {
12788
+ section: string;
12789
+ id: string;
12790
+ name: string;
12791
+ subject: string;
12792
+ }[];
12793
+ submissions: {
12794
+ assignment: {
12795
+ id: string;
12796
+ classId: string;
12797
+ title: string;
12798
+ };
12799
+ id: string;
12800
+ createdAt: Date;
12801
+ extendedResponse: string | null;
12802
+ gradeReceived: number | null;
12803
+ submittedAt: Date | null;
12804
+ }[];
12805
+ events: {
12806
+ id: string;
12807
+ location: string | null;
12808
+ name: string | null;
12809
+ startTime: Date;
12810
+ endTime: Date;
12811
+ remarks: string | null;
12812
+ }[];
12813
+ notificationsReceived: {
12814
+ id: string;
12815
+ createdAt: Date;
12816
+ title: string;
12817
+ content: string;
12818
+ read: boolean;
12819
+ }[];
12820
+ schoolMemberships: {
12821
+ status: import(".prisma/client").$Enums.SchoolMembershipStatus;
12822
+ school: {
12823
+ id: string;
12824
+ name: string;
12825
+ };
12826
+ role: import(".prisma/client").$Enums.SchoolMembershipRole;
12827
+ }[];
12828
+ sentMessages: {
12829
+ id: string;
12830
+ createdAt: Date;
12831
+ content: string;
12832
+ conversationId: string;
12833
+ }[];
12834
+ };
12835
+ };
12836
+ meta: object;
12837
+ }>;
12838
+ deleteAccount: import("@trpc/server").TRPCMutationProcedure<{
12839
+ input: {
12840
+ confirmUsername: string;
12841
+ };
12842
+ output: {
12843
+ success: boolean;
12844
+ };
12845
+ meta: object;
12846
+ }>;
12537
12847
  }>>;
12538
12848
  section: import("@trpc/server").TRPCBuiltRouter<{
12539
12849
  ctx: import("../trpc.js").Context;
@@ -12791,6 +13101,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
12791
13101
  email: string;
12792
13102
  password: string;
12793
13103
  verified: boolean;
13104
+ termsAcceptedAt: Date | null;
13105
+ termsVersion: string | null;
12794
13106
  schoolId: string | null;
12795
13107
  } | null;
12796
13108
  class: ({
@@ -13081,7 +13393,9 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
13081
13393
  username: string;
13082
13394
  email: string;
13083
13395
  password: string;
13396
+ termsVersion: "2025-11";
13084
13397
  confirmPassword: string;
13398
+ agreeToTerms: true;
13085
13399
  };
13086
13400
  output: {
13087
13401
  user: {
@@ -14655,25 +14969,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
14655
14969
  id: string;
14656
14970
  };
14657
14971
  output: {
14658
- type: string;
14659
14972
  status: string;
14660
14973
  id: string;
14661
- website: string | null;
14662
14974
  name: string;
14663
14975
  submittedAt: Date | null;
14664
- address: string;
14665
14976
  city: string;
14666
14977
  country: string;
14667
- numberOfStudents: number;
14668
- numberOfTeachers: number;
14669
- contactName: string | null;
14670
- contactRole: string | null;
14671
- contactEmail: string | null;
14672
- contactPhone: string | null;
14673
- eligibilityInformation: string | null;
14674
- whyHelp: string | null;
14675
- additionalInformation: string | null;
14676
- reviewedAt: Date | null;
14677
14978
  } | null;
14678
14979
  meta: object;
14679
14980
  }>;
@@ -15128,6 +15429,13 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
15128
15429
  } | null;
15129
15430
  meta: object;
15130
15431
  }>;
15432
+ regradeAll: import("@trpc/server").TRPCMutationProcedure<{
15433
+ input: {
15434
+ worksheetResponseId: string;
15435
+ };
15436
+ output: void;
15437
+ meta: object;
15438
+ }>;
15131
15439
  gradeAnswer: import("@trpc/server").TRPCMutationProcedure<{
15132
15440
  input: {
15133
15441
  isCorrect: boolean;
@@ -15909,6 +16217,108 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
15909
16217
  };
15910
16218
  meta: object;
15911
16219
  }>;
16220
+ getMemberTimeline: import("@trpc/server").TRPCQueryProcedure<{
16221
+ input: {
16222
+ schoolId: string;
16223
+ memberId: string;
16224
+ from?: Date | undefined;
16225
+ to?: Date | undefined;
16226
+ };
16227
+ output: {
16228
+ role: "STUDENT";
16229
+ member: {
16230
+ id: string;
16231
+ username: string;
16232
+ profile: {
16233
+ profilePicture: string | null;
16234
+ displayName: string | null;
16235
+ } | null;
16236
+ };
16237
+ events: {
16238
+ class: {
16239
+ id: string;
16240
+ name: string;
16241
+ color: string | null;
16242
+ } | null;
16243
+ id: string;
16244
+ location: string | null;
16245
+ name: string | null;
16246
+ color: string | null;
16247
+ startTime: Date;
16248
+ endTime: Date;
16249
+ remarks: string | null;
16250
+ }[];
16251
+ assignments: {
16252
+ type: import(".prisma/client").$Enums.AssignmentType;
16253
+ class: {
16254
+ section: string;
16255
+ id: string;
16256
+ name: string;
16257
+ color: string | null;
16258
+ subject: string;
16259
+ };
16260
+ id: string;
16261
+ submissions: {
16262
+ id: string;
16263
+ gradeReceived: number | null;
16264
+ submittedAt: Date | null;
16265
+ submitted: boolean | null;
16266
+ returned: boolean | null;
16267
+ }[];
16268
+ title: string;
16269
+ dueDate: Date;
16270
+ maxGrade: number | null;
16271
+ graded: boolean;
16272
+ weight: number;
16273
+ }[];
16274
+ attendance: {
16275
+ id: string;
16276
+ date: Date;
16277
+ class: {
16278
+ id: string;
16279
+ name: string;
16280
+ color: string | null;
16281
+ };
16282
+ status: "PRESENT" | "LATE" | "ABSENT";
16283
+ }[];
16284
+ classes?: undefined;
16285
+ } | {
16286
+ role: "TEACHER" | "ADMIN";
16287
+ member: {
16288
+ id: string;
16289
+ username: string;
16290
+ profile: {
16291
+ profilePicture: string | null;
16292
+ displayName: string | null;
16293
+ } | null;
16294
+ };
16295
+ events: {
16296
+ class: {
16297
+ id: string;
16298
+ name: string;
16299
+ color: string | null;
16300
+ } | null;
16301
+ id: string;
16302
+ location: string | null;
16303
+ name: string | null;
16304
+ color: string | null;
16305
+ startTime: Date;
16306
+ endTime: Date;
16307
+ remarks: string | null;
16308
+ }[];
16309
+ classes: {
16310
+ id: string;
16311
+ name: string;
16312
+ section: string;
16313
+ subject: string;
16314
+ color: string | null;
16315
+ studentCount: number;
16316
+ }[];
16317
+ assignments?: undefined;
16318
+ attendance?: undefined;
16319
+ };
16320
+ meta: object;
16321
+ }>;
15912
16322
  getAdminOverview: import("@trpc/server").TRPCQueryProcedure<{
15913
16323
  input: {
15914
16324
  schoolId: string;
@@ -16006,6 +16416,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16006
16416
  email: string;
16007
16417
  password: string;
16008
16418
  verified: boolean;
16419
+ termsAcceptedAt: Date | null;
16420
+ termsVersion: string | null;
16009
16421
  schoolId: string | null;
16010
16422
  }[];
16011
16423
  students: {
@@ -16014,6 +16426,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
16014
16426
  email: string;
16015
16427
  password: string;
16016
16428
  verified: boolean;
16429
+ termsAcceptedAt: Date | null;
16430
+ termsVersion: string | null;
16017
16431
  schoolId: string | null;
16018
16432
  }[];
16019
16433
  } & {