@studious-lms/server 1.4.5 → 1.4.7

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 (167) hide show
  1. package/dist/lib/config/cors.d.ts.map +1 -1
  2. package/dist/lib/config/cors.js +8 -3
  3. package/dist/lib/config/cors.js.map +1 -1
  4. package/dist/models/access.d.ts +112 -0
  5. package/dist/models/access.d.ts.map +1 -0
  6. package/dist/models/access.js +49 -0
  7. package/dist/models/access.js.map +1 -0
  8. package/dist/models/announcement.d.ts +17 -2
  9. package/dist/models/announcement.d.ts.map +1 -1
  10. package/dist/models/announcement.js +21 -4
  11. package/dist/models/announcement.js.map +1 -1
  12. package/dist/models/assignment.d.ts +37 -37
  13. package/dist/models/assignment.d.ts.map +1 -1
  14. package/dist/models/assignment.js +15 -15
  15. package/dist/models/assignment.js.map +1 -1
  16. package/dist/models/attendance.d.ts +1 -1
  17. package/dist/models/attendance.d.ts.map +1 -1
  18. package/dist/models/attendance.js +6 -5
  19. package/dist/models/attendance.js.map +1 -1
  20. package/dist/models/auth.d.ts +5 -5
  21. package/dist/models/auth.d.ts.map +1 -1
  22. package/dist/models/auth.js +7 -11
  23. package/dist/models/auth.js.map +1 -1
  24. package/dist/models/class.d.ts +26 -26
  25. package/dist/models/class.d.ts.map +1 -1
  26. package/dist/models/class.js +7 -11
  27. package/dist/models/class.js.map +1 -1
  28. package/dist/models/comment.d.ts +233 -6
  29. package/dist/models/comment.d.ts.map +1 -1
  30. package/dist/models/comment.js +133 -3
  31. package/dist/models/comment.js.map +1 -1
  32. package/dist/models/conversation.d.ts +7 -7
  33. package/dist/models/event.d.ts +52 -3
  34. package/dist/models/event.d.ts.map +1 -1
  35. package/dist/models/event.js +56 -6
  36. package/dist/models/event.js.map +1 -1
  37. package/dist/models/file.d.ts +178 -103
  38. package/dist/models/file.d.ts.map +1 -1
  39. package/dist/models/file.js +54 -14
  40. package/dist/models/file.js.map +1 -1
  41. package/dist/models/folder.d.ts +22 -22
  42. package/dist/models/folder.d.ts.map +1 -1
  43. package/dist/models/folder.js +5 -4
  44. package/dist/models/folder.js.map +1 -1
  45. package/dist/models/labChat.d.ts +20 -20
  46. package/dist/models/labChat.d.ts.map +1 -1
  47. package/dist/models/labChat.js +8 -10
  48. package/dist/models/labChat.js.map +1 -1
  49. package/dist/models/marketing.d.ts +1 -1
  50. package/dist/models/message.d.ts +6 -6
  51. package/dist/models/newtonChat.d.ts +5 -5
  52. package/dist/models/school.d.ts +361 -0
  53. package/dist/models/school.d.ts.map +1 -0
  54. package/dist/models/school.js +314 -0
  55. package/dist/models/school.js.map +1 -0
  56. package/dist/models/section.d.ts +1 -1
  57. package/dist/models/section.d.ts.map +1 -1
  58. package/dist/models/section.js +5 -4
  59. package/dist/models/section.js.map +1 -1
  60. package/dist/models/user.d.ts +4 -4
  61. package/dist/models/worksheet.d.ts +67 -65
  62. package/dist/models/worksheet.d.ts.map +1 -1
  63. package/dist/models/worksheet.js +6 -14
  64. package/dist/models/worksheet.js.map +1 -1
  65. package/dist/pipelines/aiLabChat.d.ts.map +1 -1
  66. package/dist/pipelines/aiLabChat.js +4 -3
  67. package/dist/pipelines/aiLabChat.js.map +1 -1
  68. package/dist/pipelines/gradeWorksheet.d.ts +2 -2
  69. package/dist/pipelines/pdfToWorksheet.d.ts +1 -1
  70. package/dist/routers/_app.d.ts +2462 -1104
  71. package/dist/routers/_app.d.ts.map +1 -1
  72. package/dist/routers/_app.js +4 -2
  73. package/dist/routers/_app.js.map +1 -1
  74. package/dist/routers/announcement.d.ts +13 -5
  75. package/dist/routers/announcement.d.ts.map +1 -1
  76. package/dist/routers/announcement.js +25 -5
  77. package/dist/routers/announcement.js.map +1 -1
  78. package/dist/routers/assignment.d.ts +266 -36
  79. package/dist/routers/assignment.d.ts.map +1 -1
  80. package/dist/routers/assignment.js +221 -3
  81. package/dist/routers/assignment.js.map +1 -1
  82. package/dist/routers/class.d.ts +21 -20
  83. package/dist/routers/class.d.ts.map +1 -1
  84. package/dist/routers/class.js +3 -2
  85. package/dist/routers/class.js.map +1 -1
  86. package/dist/routers/comment.d.ts +40 -3
  87. package/dist/routers/comment.d.ts.map +1 -1
  88. package/dist/routers/comment.js +14 -5
  89. package/dist/routers/comment.js.map +1 -1
  90. package/dist/routers/conversation.d.ts +6 -6
  91. package/dist/routers/event.d.ts +21 -2
  92. package/dist/routers/event.d.ts.map +1 -1
  93. package/dist/routers/file.d.ts +2 -2
  94. package/dist/routers/folder.d.ts +24 -24
  95. package/dist/routers/labChat.d.ts +7 -7
  96. package/dist/routers/school.d.ts +384 -0
  97. package/dist/routers/school.d.ts.map +1 -0
  98. package/dist/routers/school.js +79 -0
  99. package/dist/routers/school.js.map +1 -0
  100. package/dist/routers/search.d.ts +1 -1
  101. package/dist/routers/worksheet.d.ts +23 -21
  102. package/dist/routers/worksheet.d.ts.map +1 -1
  103. package/dist/services/announcement.d.ts.map +1 -1
  104. package/dist/services/announcement.js +10 -6
  105. package/dist/services/announcement.js.map +1 -1
  106. package/dist/services/assignment.d.ts +36 -36
  107. package/dist/services/class.d.ts +20 -19
  108. package/dist/services/class.d.ts.map +1 -1
  109. package/dist/services/class.js +22 -3
  110. package/dist/services/class.js.map +1 -1
  111. package/dist/services/comment.d.ts +31 -5
  112. package/dist/services/comment.d.ts.map +1 -1
  113. package/dist/services/comment.js +102 -19
  114. package/dist/services/comment.js.map +1 -1
  115. package/dist/services/conversation.d.ts +6 -6
  116. package/dist/services/event.d.ts +21 -2
  117. package/dist/services/event.d.ts.map +1 -1
  118. package/dist/services/event.js +11 -7
  119. package/dist/services/event.js.map +1 -1
  120. package/dist/services/file.d.ts +2 -2
  121. package/dist/services/file.d.ts.map +1 -1
  122. package/dist/services/file.js +17 -8
  123. package/dist/services/file.js.map +1 -1
  124. package/dist/services/folder.d.ts +24 -24
  125. package/dist/services/labChat.d.ts +7 -7
  126. package/dist/services/school.d.ts +299 -0
  127. package/dist/services/school.d.ts.map +1 -0
  128. package/dist/services/school.js +225 -0
  129. package/dist/services/school.js.map +1 -0
  130. package/dist/services/worksheet.d.ts +23 -21
  131. package/dist/services/worksheet.d.ts.map +1 -1
  132. package/package.json +1 -1
  133. package/prisma/migrations/20260502230500_assignment_submission_comments/migration.sql +60 -0
  134. package/prisma/migrations/20260504071500_school_memberships/migration.sql +81 -0
  135. package/prisma/schema.prisma +75 -2
  136. package/src/lib/config/cors.ts +8 -1
  137. package/src/models/access.ts +48 -0
  138. package/src/models/announcement.ts +19 -2
  139. package/src/models/assignment.ts +17 -13
  140. package/src/models/attendance.ts +4 -3
  141. package/src/models/auth.ts +8 -9
  142. package/src/models/class.ts +8 -9
  143. package/src/models/comment.ts +137 -1
  144. package/src/models/event.ts +54 -4
  145. package/src/models/file.ts +53 -12
  146. package/src/models/folder.ts +3 -2
  147. package/src/models/labChat.ts +9 -8
  148. package/src/models/school.ts +361 -0
  149. package/src/models/section.ts +3 -2
  150. package/src/models/worksheet.ts +7 -12
  151. package/src/pipelines/aiLabChat.ts +2 -1
  152. package/src/routers/_app.ts +2 -0
  153. package/src/routers/announcement.ts +30 -4
  154. package/src/routers/assignment.ts +243 -2
  155. package/src/routers/class.ts +1 -0
  156. package/src/routers/comment.ts +19 -2
  157. package/src/routers/school.ts +122 -0
  158. package/src/services/announcement.ts +12 -4
  159. package/src/services/class.ts +25 -2
  160. package/src/services/comment.ts +122 -18
  161. package/src/services/event.ts +23 -6
  162. package/src/services/file.ts +20 -6
  163. package/src/services/school.ts +308 -0
  164. package/tests/lib/cors.test.ts +13 -1
  165. package/tests/routers/assignment.test.ts +68 -2
  166. package/tests/routers/comment.test.ts +42 -1
  167. package/vercel.json +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sources":["routers/class.ts"],"sourceRoot":"/","sourcesContent":["import { z } from \"zod\";\nimport {\n createTRPCRouter,\n protectedProcedure,\n protectedTeacherProcedure,\n protectedClassMemberProcedure,\n} from \"../trpc.js\";\nimport {\n getAllClasses,\n getClass,\n updateClass,\n createClass,\n deleteClass,\n addStudent,\n changeRole,\n removeMember,\n leaveClass,\n joinClass,\n getInviteCode,\n createInviteCode,\n getGrades,\n updateGrade,\n getEvents,\n listMarkSchemes,\n createMarkScheme,\n updateMarkScheme,\n deleteMarkScheme,\n listGradingBoundaries,\n createGradingBoundary,\n updateGradingBoundary,\n deleteGradingBoundary,\n getSyllabus,\n updateSyllabus,\n listLabDrafts,\n createLabDraft,\n updateLabDraft,\n deleteLabDraft,\n publishLabDraft,\n getFiles,\n exportClass,\n importClass,\n} from \"../services/class.js\";\n\nexport const classRouter = createTRPCRouter({\n getAll: protectedProcedure.query(({ ctx }) =>\n getAllClasses(ctx.user?.id ?? \"\")\n ),\n\n get: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ ctx, input }) =>\n getClass(ctx.user?.id ?? \"\", input.classId)\n ),\n update: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n name: z.string().optional(),\n section: z.string().optional(),\n subject: z.string().optional(),\n })\n )\n .mutation(({ input }) => {\n const { classId, ...updateData } = input;\n return updateClass(classId, updateData);\n }),\n\n create: protectedProcedure\n .input(\n z.object({\n students: z.array(z.string()).optional(),\n teachers: z.array(z.string()).optional(),\n name: z.string(),\n section: z.string(),\n subject: z.string(),\n color: z.string().optional(),\n })\n )\n .mutation(({ ctx, input }) =>\n createClass(ctx.user?.id ?? \"\", input)\n ),\n\n delete: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), id: z.string() }))\n .mutation(({ input }) => deleteClass(input.id)),\n addStudent: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), studentId: z.string() }))\n .mutation(({ input }) => addStudent(input.classId, input.studentId)),\n\n changeRole: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n userId: z.string(),\n type: z.enum([\"teacher\", \"student\"]),\n })\n )\n .mutation(({ input }) =>\n changeRole(input.classId, input.userId, input.type)\n ),\n\n removeMember: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), userId: z.string() }))\n .mutation(({ input }) => removeMember(input.classId, input.userId)),\n\n leaveClass: protectedProcedure\n .input(z.object({ classId: z.string() }))\n .mutation(({ ctx, input }) => {\n if (!ctx.user?.id) {\n throw new Error(\"User not authenticated\");\n }\n return leaveClass(ctx.user.id, input.classId);\n }),\n\n join: protectedProcedure\n .input(z.object({ classCode: z.string() }))\n .mutation(({ ctx, input }) =>\n joinClass(ctx.user?.id ?? \"\", input.classCode)\n ),\n\n getInviteCode: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getInviteCode(input.classId)),\n\n createInviteCode: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .mutation(({ input }) => createInviteCode(input.classId)),\n getGrades: protectedClassMemberProcedure\n .input(z.object({ classId: z.string(), userId: z.string() }))\n .query(({ ctx, input }) =>\n getGrades(ctx.user?.id ?? \"\", input.classId, input.userId)\n ),\n\n updateGrade: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n assignmentId: z.string(),\n submissionId: z.string(),\n gradeReceived: z.number().nullable(),\n })\n )\n .mutation(({ input }) =>\n updateGrade(\n input.assignmentId,\n input.submissionId,\n input.gradeReceived\n )\n ),\n\n getEvents: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getEvents(input.classId)),\n listMarkSchemes: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => listMarkSchemes(input.classId)),\n\n createMarkScheme: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), structure: z.string() }))\n .mutation(({ input }) =>\n createMarkScheme(input.classId, input.structure)\n ),\n\n updateMarkScheme: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n markSchemeId: z.string(),\n structure: z.string(),\n })\n )\n .mutation(({ input }) =>\n updateMarkScheme(\n input.markSchemeId,\n input.classId,\n input.structure\n )\n ),\n\n deleteMarkScheme: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), markSchemeId: z.string() }))\n .mutation(({ input }) => deleteMarkScheme(input.markSchemeId)),\n\n listGradingBoundaries: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => listGradingBoundaries(input.classId)),\n\n createGradingBoundary: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), structure: z.string() }))\n .mutation(({ input }) =>\n createGradingBoundary(input.classId, input.structure)\n ),\n\n updateGradingBoundary: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n gradingBoundaryId: z.string(),\n structure: z.string(),\n })\n )\n .mutation(({ input }) =>\n updateGradingBoundary(\n input.gradingBoundaryId,\n input.classId,\n input.structure\n )\n ),\n\n deleteGradingBoundary: protectedTeacherProcedure\n .input(\n z.object({ classId: z.string(), gradingBoundaryId: z.string() })\n )\n .mutation(({ input }) => deleteGradingBoundary(input.gradingBoundaryId)),\n getSyllabus: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getSyllabus(input.classId)),\n\n updateSyllabus: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), contents: z.string() }))\n .mutation(({ input }) =>\n updateSyllabus(input.classId, input.contents)\n ),\n listLabDrafts: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ ctx, input }) =>\n listLabDrafts(input.classId, ctx.user?.id ?? \"\")\n ),\n\n createLabDraft: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n title: z.string(),\n type: z.enum([\n \"LAB\",\n \"HOMEWORK\",\n \"QUIZ\",\n \"TEST\",\n \"PROJECT\",\n \"ESSAY\",\n \"DISCUSSION\",\n \"PRESENTATION\",\n \"OTHER\",\n ]),\n instructions: z.string(),\n dueDate: z.date().optional(),\n maxGrade: z.number().optional(),\n weight: z.number().optional(),\n graded: z.boolean().optional(),\n sectionId: z.string().optional(),\n markSchemeId: z.string().optional(),\n gradingBoundaryId: z.string().optional(),\n })\n )\n .mutation(({ ctx, input }) => {\n const { classId, ...draftData } = input;\n return createLabDraft(classId, ctx.user?.id ?? \"\", draftData);\n }),\n\n updateLabDraft: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n draftId: z.string(),\n title: z.string().optional(),\n instructions: z.string().optional(),\n dueDate: z.date().optional(),\n maxGrade: z.number().optional(),\n weight: z.number().optional(),\n graded: z.boolean().optional(),\n sectionId: z.string().optional(),\n markSchemeId: z.string().optional(),\n gradingBoundaryId: z.string().optional(),\n })\n )\n .mutation(({ ctx, input }) => {\n const { classId, draftId, ...updateData } = input;\n return updateLabDraft(\n classId,\n ctx.user?.id ?? \"\",\n draftId,\n updateData\n );\n }),\n\n deleteLabDraft: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), draftId: z.string() }))\n .mutation(({ ctx, input }) =>\n deleteLabDraft(input.classId, ctx.user?.id ?? \"\", input.draftId)\n ),\n\n publishLabDraft: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n draftId: z.string(),\n dueDate: z.date().optional(),\n maxGrade: z.number().optional(),\n weight: z.number().optional(),\n graded: z.boolean().optional(),\n })\n )\n .mutation(({ ctx, input }) => {\n const { classId, draftId, ...publishData } = input;\n return publishLabDraft(\n classId,\n ctx.user?.id ?? \"\",\n draftId,\n publishData\n );\n }),\n\n getFiles: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getFiles(input.classId)),\n exportClass: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .mutation(({ ctx, input }) => exportClass(input.classId, ctx.user?.id ?? \"\")),\n\n importClass: protectedProcedure\n .input(\n z.object({\n classId: z.string(),\n year: z.number(),\n classData: z.any(),\n })\n )\n .mutation(({ ctx, input }) =>\n importClass(input.classId, ctx.user?.id ?? \"\", input.year, input.classData)\n ),\n});\n"],"names":[],"mappings":"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","debug_id":"e9a5cc9e-f9aa-5eb5-a271-7a347e0d7dd1"}
1
+ {"version":3,"file":"class.js","sources":["routers/class.ts"],"sourceRoot":"/","sourcesContent":["import { z } from \"zod\";\nimport {\n createTRPCRouter,\n protectedProcedure,\n protectedTeacherProcedure,\n protectedClassMemberProcedure,\n} from \"../trpc.js\";\nimport {\n getAllClasses,\n getClass,\n updateClass,\n createClass,\n deleteClass,\n addStudent,\n changeRole,\n removeMember,\n leaveClass,\n joinClass,\n getInviteCode,\n createInviteCode,\n getGrades,\n updateGrade,\n getEvents,\n listMarkSchemes,\n createMarkScheme,\n updateMarkScheme,\n deleteMarkScheme,\n listGradingBoundaries,\n createGradingBoundary,\n updateGradingBoundary,\n deleteGradingBoundary,\n getSyllabus,\n updateSyllabus,\n listLabDrafts,\n createLabDraft,\n updateLabDraft,\n deleteLabDraft,\n publishLabDraft,\n getFiles,\n exportClass,\n importClass,\n} from \"../services/class.js\";\n\nexport const classRouter = createTRPCRouter({\n getAll: protectedProcedure.query(({ ctx }) =>\n getAllClasses(ctx.user?.id ?? \"\")\n ),\n\n get: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ ctx, input }) =>\n getClass(ctx.user?.id ?? \"\", input.classId)\n ),\n update: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n name: z.string().optional(),\n section: z.string().optional(),\n subject: z.string().optional(),\n })\n )\n .mutation(({ input }) => {\n const { classId, ...updateData } = input;\n return updateClass(classId, updateData);\n }),\n\n create: protectedProcedure\n .input(\n z.object({\n students: z.array(z.string()).optional(),\n teachers: z.array(z.string()).optional(),\n name: z.string(),\n section: z.string(),\n subject: z.string(),\n color: z.string().optional(),\n schoolId: z.string().optional(),\n })\n )\n .mutation(({ ctx, input }) =>\n createClass(ctx.user?.id ?? \"\", input)\n ),\n\n delete: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), id: z.string() }))\n .mutation(({ input }) => deleteClass(input.id)),\n addStudent: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), studentId: z.string() }))\n .mutation(({ input }) => addStudent(input.classId, input.studentId)),\n\n changeRole: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n userId: z.string(),\n type: z.enum([\"teacher\", \"student\"]),\n })\n )\n .mutation(({ input }) =>\n changeRole(input.classId, input.userId, input.type)\n ),\n\n removeMember: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), userId: z.string() }))\n .mutation(({ input }) => removeMember(input.classId, input.userId)),\n\n leaveClass: protectedProcedure\n .input(z.object({ classId: z.string() }))\n .mutation(({ ctx, input }) => {\n if (!ctx.user?.id) {\n throw new Error(\"User not authenticated\");\n }\n return leaveClass(ctx.user.id, input.classId);\n }),\n\n join: protectedProcedure\n .input(z.object({ classCode: z.string() }))\n .mutation(({ ctx, input }) =>\n joinClass(ctx.user?.id ?? \"\", input.classCode)\n ),\n\n getInviteCode: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getInviteCode(input.classId)),\n\n createInviteCode: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .mutation(({ input }) => createInviteCode(input.classId)),\n getGrades: protectedClassMemberProcedure\n .input(z.object({ classId: z.string(), userId: z.string() }))\n .query(({ ctx, input }) =>\n getGrades(ctx.user?.id ?? \"\", input.classId, input.userId)\n ),\n\n updateGrade: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n assignmentId: z.string(),\n submissionId: z.string(),\n gradeReceived: z.number().nullable(),\n })\n )\n .mutation(({ input }) =>\n updateGrade(\n input.assignmentId,\n input.submissionId,\n input.gradeReceived\n )\n ),\n\n getEvents: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getEvents(input.classId)),\n listMarkSchemes: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => listMarkSchemes(input.classId)),\n\n createMarkScheme: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), structure: z.string() }))\n .mutation(({ input }) =>\n createMarkScheme(input.classId, input.structure)\n ),\n\n updateMarkScheme: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n markSchemeId: z.string(),\n structure: z.string(),\n })\n )\n .mutation(({ input }) =>\n updateMarkScheme(\n input.markSchemeId,\n input.classId,\n input.structure\n )\n ),\n\n deleteMarkScheme: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), markSchemeId: z.string() }))\n .mutation(({ input }) => deleteMarkScheme(input.markSchemeId)),\n\n listGradingBoundaries: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => listGradingBoundaries(input.classId)),\n\n createGradingBoundary: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), structure: z.string() }))\n .mutation(({ input }) =>\n createGradingBoundary(input.classId, input.structure)\n ),\n\n updateGradingBoundary: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n gradingBoundaryId: z.string(),\n structure: z.string(),\n })\n )\n .mutation(({ input }) =>\n updateGradingBoundary(\n input.gradingBoundaryId,\n input.classId,\n input.structure\n )\n ),\n\n deleteGradingBoundary: protectedTeacherProcedure\n .input(\n z.object({ classId: z.string(), gradingBoundaryId: z.string() })\n )\n .mutation(({ input }) => deleteGradingBoundary(input.gradingBoundaryId)),\n getSyllabus: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getSyllabus(input.classId)),\n\n updateSyllabus: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), contents: z.string() }))\n .mutation(({ input }) =>\n updateSyllabus(input.classId, input.contents)\n ),\n listLabDrafts: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ ctx, input }) =>\n listLabDrafts(input.classId, ctx.user?.id ?? \"\")\n ),\n\n createLabDraft: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n title: z.string(),\n type: z.enum([\n \"LAB\",\n \"HOMEWORK\",\n \"QUIZ\",\n \"TEST\",\n \"PROJECT\",\n \"ESSAY\",\n \"DISCUSSION\",\n \"PRESENTATION\",\n \"OTHER\",\n ]),\n instructions: z.string(),\n dueDate: z.date().optional(),\n maxGrade: z.number().optional(),\n weight: z.number().optional(),\n graded: z.boolean().optional(),\n sectionId: z.string().optional(),\n markSchemeId: z.string().optional(),\n gradingBoundaryId: z.string().optional(),\n })\n )\n .mutation(({ ctx, input }) => {\n const { classId, ...draftData } = input;\n return createLabDraft(classId, ctx.user?.id ?? \"\", draftData);\n }),\n\n updateLabDraft: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n draftId: z.string(),\n title: z.string().optional(),\n instructions: z.string().optional(),\n dueDate: z.date().optional(),\n maxGrade: z.number().optional(),\n weight: z.number().optional(),\n graded: z.boolean().optional(),\n sectionId: z.string().optional(),\n markSchemeId: z.string().optional(),\n gradingBoundaryId: z.string().optional(),\n })\n )\n .mutation(({ ctx, input }) => {\n const { classId, draftId, ...updateData } = input;\n return updateLabDraft(\n classId,\n ctx.user?.id ?? \"\",\n draftId,\n updateData\n );\n }),\n\n deleteLabDraft: protectedTeacherProcedure\n .input(z.object({ classId: z.string(), draftId: z.string() }))\n .mutation(({ ctx, input }) =>\n deleteLabDraft(input.classId, ctx.user?.id ?? \"\", input.draftId)\n ),\n\n publishLabDraft: protectedTeacherProcedure\n .input(\n z.object({\n classId: z.string(),\n draftId: z.string(),\n dueDate: z.date().optional(),\n maxGrade: z.number().optional(),\n weight: z.number().optional(),\n graded: z.boolean().optional(),\n })\n )\n .mutation(({ ctx, input }) => {\n const { classId, draftId, ...publishData } = input;\n return publishLabDraft(\n classId,\n ctx.user?.id ?? \"\",\n draftId,\n publishData\n );\n }),\n\n getFiles: protectedClassMemberProcedure\n .input(z.object({ classId: z.string() }))\n .query(({ input }) => getFiles(input.classId)),\n exportClass: protectedTeacherProcedure\n .input(z.object({ classId: z.string() }))\n .mutation(({ ctx, input }) => exportClass(input.classId, ctx.user?.id ?? \"\")),\n\n importClass: protectedProcedure\n .input(\n z.object({\n classId: z.string(),\n year: z.number(),\n classData: z.any(),\n })\n )\n .mutation(({ ctx, input }) =>\n importClass(input.classId, ctx.user?.id ?? \"\", input.year, input.classData)\n ),\n});\n"],"names":[],"mappings":"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","debug_id":"0a13604c-c0c0-5009-816f-a1e3d2b91af5"}
@@ -23,6 +23,10 @@ export declare const commentRouter: import("@trpc/server").TRPCBuiltRouter<{
23
23
  };
24
24
  output: {
25
25
  id: string;
26
+ createdAt: Date;
27
+ assignmentId: string | null;
28
+ submissionId: string | null;
29
+ announcementId: string | null;
26
30
  reactions: {
27
31
  type: import(".prisma/client").$Enums.ReactionType;
28
32
  user: {
@@ -35,9 +39,9 @@ export declare const commentRouter: import("@trpc/server").TRPCBuiltRouter<{
35
39
  } | null;
36
40
  };
37
41
  }[];
38
- createdAt: Date;
39
42
  modifiedAt: Date | null;
40
43
  content: string;
44
+ parentCommentId: string | null;
41
45
  author: {
42
46
  id: string;
43
47
  username: string;
@@ -67,8 +71,10 @@ export declare const commentRouter: import("@trpc/server").TRPCBuiltRouter<{
67
71
  } & {
68
72
  status: import(".prisma/client").$Enums.GenerationStatus | null;
69
73
  id: string;
70
- announcementId: string | null;
71
74
  createdAt: Date;
75
+ assignmentId: string | null;
76
+ submissionId: string | null;
77
+ announcementId: string | null;
72
78
  modifiedAt: Date | null;
73
79
  content: string;
74
80
  authorId: string;
@@ -85,8 +91,30 @@ export declare const commentRouter: import("@trpc/server").TRPCBuiltRouter<{
85
91
  output: {
86
92
  status: import(".prisma/client").$Enums.GenerationStatus | null;
87
93
  id: string;
94
+ createdAt: Date;
95
+ assignmentId: string | null;
96
+ submissionId: string | null;
88
97
  announcementId: string | null;
98
+ modifiedAt: Date | null;
99
+ content: string;
100
+ authorId: string;
101
+ parentCommentId: string | null;
102
+ studentQuestionProgressId: string | null;
103
+ };
104
+ meta: object;
105
+ }>;
106
+ update: import("@trpc/server").TRPCMutationProcedure<{
107
+ input: {
108
+ id: string;
109
+ content: string;
110
+ };
111
+ output: {
112
+ status: import(".prisma/client").$Enums.GenerationStatus | null;
113
+ id: string;
89
114
  createdAt: Date;
115
+ assignmentId: string | null;
116
+ submissionId: string | null;
117
+ announcementId: string | null;
90
118
  modifiedAt: Date | null;
91
119
  content: string;
92
120
  authorId: string;
@@ -95,6 +123,15 @@ export declare const commentRouter: import("@trpc/server").TRPCBuiltRouter<{
95
123
  };
96
124
  meta: object;
97
125
  }>;
126
+ delete: import("@trpc/server").TRPCMutationProcedure<{
127
+ input: {
128
+ id: string;
129
+ };
130
+ output: {
131
+ success: boolean;
132
+ };
133
+ meta: object;
134
+ }>;
98
135
  addReaction: import("@trpc/server").TRPCMutationProcedure<{
99
136
  input: {
100
137
  type: "THUMBSUP" | "CELEBRATE" | "CARE" | "HEART" | "IDEA" | "HAPPY";
@@ -114,9 +151,9 @@ export declare const commentRouter: import("@trpc/server").TRPCBuiltRouter<{
114
151
  } & {
115
152
  type: import(".prisma/client").$Enums.ReactionType;
116
153
  id: string;
154
+ createdAt: Date;
117
155
  userId: string;
118
156
  announcementId: string | null;
119
- createdAt: Date;
120
157
  commentId: string | null;
121
158
  };
122
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"comment.d.ts","sourceRoot":"/","sources":["routers/comment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DxB,CAAC"}
1
+ {"version":3,"file":"comment.d.ts","sourceRoot":"/","sources":["routers/comment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4ExB,CAAC"}
@@ -1,23 +1,32 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0665e0c8-fc1f-5ed4-ab4f-2b100d0b9884")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="59f36e4f-e4ab-5c6a-8d53-facfca1e1a45")}catch(e){}}();
3
3
  import { createTRPCRouter, protectedProcedure } from "../trpc.js";
4
4
  import { z } from "zod";
5
5
  import { TRPCError } from "@trpc/server";
6
- import { getComment, getReplies, replyToComment, addReaction, removeReaction, getReactions, } from "../services/comment.js";
6
+ import { getComment, getReplies, replyToComment, updateComment, deleteComment, addReaction, removeReaction, getReactions, } from "../services/comment.js";
7
7
  export { commentSelect } from "../models/comment.js";
8
8
  export const commentRouter = createTRPCRouter({
9
9
  get: protectedProcedure
10
10
  .input(z.object({ id: z.string() }))
11
- .query(({ input }) => getComment(input.id)),
11
+ .query(({ ctx, input }) => getComment(ctx.user.id, input.id)),
12
12
  getReplies: protectedProcedure
13
13
  .input(z.object({ commentId: z.string() }))
14
- .query(({ input }) => getReplies(input.commentId)),
14
+ .query(({ ctx, input }) => getReplies(ctx.user.id, input.commentId)),
15
15
  replyToComment: protectedProcedure
16
16
  .input(z.object({
17
17
  parentCommentId: z.string(),
18
18
  content: z.string(),
19
19
  }))
20
20
  .mutation(({ ctx, input }) => replyToComment(ctx.user.id, input.parentCommentId, input.content)),
21
+ update: protectedProcedure
22
+ .input(z.object({
23
+ id: z.string(),
24
+ content: z.string().min(1, "Comment cannot be empty"),
25
+ }))
26
+ .mutation(({ ctx, input }) => updateComment(ctx.user.id, input.id, input.content)),
27
+ delete: protectedProcedure
28
+ .input(z.object({ id: z.string() }))
29
+ .mutation(({ ctx, input }) => deleteComment(ctx.user.id, input.id)),
21
30
  addReaction: protectedProcedure
22
31
  .input(z.object({
23
32
  id: z.string(),
@@ -55,4 +64,4 @@ export const commentRouter = createTRPCRouter({
55
64
  }),
56
65
  });
57
66
  //# sourceMappingURL=comment.js.map
58
- //# debugId=0665e0c8-fc1f-5ed4-ab4f-2b100d0b9884
67
+ //# debugId=59f36e4f-e4ab-5c6a-8d53-facfca1e1a45
@@ -1 +1 @@
1
- {"version":3,"file":"comment.js","sources":["routers/comment.ts"],"sourceRoot":"/","sourcesContent":["import { createTRPCRouter, protectedProcedure } from \"../trpc.js\";\nimport { z } from \"zod\";\nimport { TRPCError } from \"@trpc/server\";\nimport {\n getComment,\n getReplies,\n replyToComment,\n addReaction,\n removeReaction,\n getReactions,\n} from \"../services/comment.js\";\n\nexport { commentSelect } from \"../models/comment.js\";\n\nexport const commentRouter = createTRPCRouter({\n get: protectedProcedure\n .input(z.object({ id: z.string() }))\n .query(({ input }) => getComment(input.id)),\n\n getReplies: protectedProcedure\n .input(z.object({ commentId: z.string() }))\n .query(({ input }) => getReplies(input.commentId)),\n\n replyToComment: protectedProcedure\n .input(\n z.object({\n parentCommentId: z.string(),\n content: z.string(),\n })\n )\n .mutation(({ ctx, input }) =>\n replyToComment(ctx.user!.id, input.parentCommentId, input.content)\n ),\n\n addReaction: protectedProcedure\n .input(\n z.object({\n id: z.string(),\n type: z.enum([\n \"THUMBSUP\",\n \"CELEBRATE\",\n \"CARE\",\n \"HEART\",\n \"IDEA\",\n \"HAPPY\",\n ]),\n })\n )\n .mutation(({ ctx, input }) =>\n addReaction(ctx.user!.id, input.id, input.type)\n ),\n\n removeReaction: protectedProcedure\n .input(z.object({ commentId: z.string().optional() }))\n .mutation(({ ctx, input }) => {\n if (!input.commentId) {\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Either announcementId or commentId must be provided\",\n });\n }\n return removeReaction(ctx.user!.id, input.commentId);\n }),\n\n getReactions: protectedProcedure\n .input(z.object({ commentId: z.string().optional() }))\n .query(({ ctx, input }) => {\n if (!input.commentId) {\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Either announcementId or commentId must be provided\",\n });\n }\n return getReactions(ctx.user!.id, input.commentId);\n }),\n});\n"],"names":[],"mappings":"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","debug_id":"0665e0c8-fc1f-5ed4-ab4f-2b100d0b9884"}
1
+ {"version":3,"file":"comment.js","sources":["routers/comment.ts"],"sourceRoot":"/","sourcesContent":["import { createTRPCRouter, protectedProcedure } from \"../trpc.js\";\nimport { z } from \"zod\";\nimport { TRPCError } from \"@trpc/server\";\nimport {\n getComment,\n getReplies,\n replyToComment,\n updateComment,\n deleteComment,\n addReaction,\n removeReaction,\n getReactions,\n} from \"../services/comment.js\";\n\nexport { commentSelect } from \"../models/comment.js\";\n\nexport const commentRouter = createTRPCRouter({\n get: protectedProcedure\n .input(z.object({ id: z.string() }))\n .query(({ ctx, input }) => getComment(ctx.user!.id, input.id)),\n\n getReplies: protectedProcedure\n .input(z.object({ commentId: z.string() }))\n .query(({ ctx, input }) => getReplies(ctx.user!.id, input.commentId)),\n\n replyToComment: protectedProcedure\n .input(\n z.object({\n parentCommentId: z.string(),\n content: z.string(),\n })\n )\n .mutation(({ ctx, input }) =>\n replyToComment(ctx.user!.id, input.parentCommentId, input.content)\n ),\n\n update: protectedProcedure\n .input(\n z.object({\n id: z.string(),\n content: z.string().min(1, \"Comment cannot be empty\"),\n })\n )\n .mutation(({ ctx, input }) =>\n updateComment(ctx.user!.id, input.id, input.content)\n ),\n\n delete: protectedProcedure\n .input(z.object({ id: z.string() }))\n .mutation(({ ctx, input }) => deleteComment(ctx.user!.id, input.id)),\n\n addReaction: protectedProcedure\n .input(\n z.object({\n id: z.string(),\n type: z.enum([\n \"THUMBSUP\",\n \"CELEBRATE\",\n \"CARE\",\n \"HEART\",\n \"IDEA\",\n \"HAPPY\",\n ]),\n })\n )\n .mutation(({ ctx, input }) =>\n addReaction(ctx.user!.id, input.id, input.type)\n ),\n\n removeReaction: protectedProcedure\n .input(z.object({ commentId: z.string().optional() }))\n .mutation(({ ctx, input }) => {\n if (!input.commentId) {\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Either announcementId or commentId must be provided\",\n });\n }\n return removeReaction(ctx.user!.id, input.commentId);\n }),\n\n getReactions: protectedProcedure\n .input(z.object({ commentId: z.string().optional() }))\n .query(({ ctx, input }) => {\n if (!input.commentId) {\n throw new TRPCError({\n code: \"BAD_REQUEST\",\n message: \"Either announcementId or commentId must be provided\",\n });\n }\n return getReactions(ctx.user!.id, input.commentId);\n }),\n});\n"],"names":[],"mappings":"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","debug_id":"59f36e4f-e4ab-5c6a-8d53-facfca1e1a45"}
@@ -39,9 +39,9 @@ export declare const conversationRouter: import("@trpc/server").TRPCBuiltRouter<
39
39
  };
40
40
  } & {
41
41
  id: string;
42
+ role: import(".prisma/client").$Enums.ConversationRole;
42
43
  userId: string;
43
44
  conversationId: string;
44
- role: import(".prisma/client").$Enums.ConversationRole;
45
45
  joinedAt: Date;
46
46
  hiddenAt: Date | null;
47
47
  lastViewedAt: Date | null;
@@ -59,8 +59,8 @@ export declare const conversationRouter: import("@trpc/server").TRPCBuiltRouter<
59
59
  status: import(".prisma/client").$Enums.GenerationStatus | null;
60
60
  meta: import("@prisma/client/runtime/library.js").JsonValue | null;
61
61
  id: string;
62
- conversationId: string;
63
62
  createdAt: Date;
63
+ conversationId: string;
64
64
  content: string;
65
65
  senderId: string;
66
66
  };
@@ -87,9 +87,9 @@ export declare const conversationRouter: import("@trpc/server").TRPCBuiltRouter<
87
87
  };
88
88
  } & {
89
89
  id: string;
90
+ role: import(".prisma/client").$Enums.ConversationRole;
90
91
  userId: string;
91
92
  conversationId: string;
92
- role: import(".prisma/client").$Enums.ConversationRole;
93
93
  joinedAt: Date;
94
94
  hiddenAt: Date | null;
95
95
  lastViewedAt: Date | null;
@@ -121,9 +121,9 @@ export declare const conversationRouter: import("@trpc/server").TRPCBuiltRouter<
121
121
  };
122
122
  } & {
123
123
  id: string;
124
+ role: import(".prisma/client").$Enums.ConversationRole;
124
125
  userId: string;
125
126
  conversationId: string;
126
- role: import(".prisma/client").$Enums.ConversationRole;
127
127
  joinedAt: Date;
128
128
  hiddenAt: Date | null;
129
129
  lastViewedAt: Date | null;
@@ -165,9 +165,9 @@ export declare const conversationRouter: import("@trpc/server").TRPCBuiltRouter<
165
165
  };
166
166
  } & {
167
167
  id: string;
168
+ role: import(".prisma/client").$Enums.ConversationRole;
168
169
  userId: string;
169
170
  conversationId: string;
170
- role: import(".prisma/client").$Enums.ConversationRole;
171
171
  joinedAt: Date;
172
172
  hiddenAt: Date | null;
173
173
  lastViewedAt: Date | null;
@@ -200,9 +200,9 @@ export declare const conversationRouter: import("@trpc/server").TRPCBuiltRouter<
200
200
  };
201
201
  } & {
202
202
  id: string;
203
+ role: import(".prisma/client").$Enums.ConversationRole;
203
204
  userId: string;
204
205
  conversationId: string;
205
- role: import(".prisma/client").$Enums.ConversationRole;
206
206
  joinedAt: Date;
207
207
  hiddenAt: Date | null;
208
208
  lastViewedAt: Date | null;
@@ -31,7 +31,26 @@ export declare const eventRouter: import("@trpc/server").TRPCBuiltRouter<{
31
31
  role: import(".prisma/client").$Enums.UserRole;
32
32
  schoolId: string | null;
33
33
  } | null;
34
- class: {
34
+ class: ({
35
+ school: ({
36
+ users: {
37
+ id: string;
38
+ }[];
39
+ memberships: {
40
+ userId: string;
41
+ }[];
42
+ } & {
43
+ name: string;
44
+ id: string;
45
+ logoId: string | null;
46
+ subdomain: string | null;
47
+ createdAt: Date;
48
+ updatedAt: Date;
49
+ }) | null;
50
+ teachers: {
51
+ id: string;
52
+ }[];
53
+ } & {
35
54
  name: string;
36
55
  id: string;
37
56
  schoolId: string | null;
@@ -39,7 +58,7 @@ export declare const eventRouter: import("@trpc/server").TRPCBuiltRouter<{
39
58
  color: string | null;
40
59
  section: string;
41
60
  syllabus: string | null;
42
- } | null;
61
+ }) | null;
43
62
  assignmentsAttached: {
44
63
  type: import(".prisma/client").$Enums.AssignmentType;
45
64
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"/","sources":["routers/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDtB,CAAC"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"/","sources":["routers/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDtB,CAAC"}
@@ -42,8 +42,8 @@ export declare const fileRouter: import("@trpc/server").TRPCBuiltRouter<{
42
42
  type: string;
43
43
  name: string;
44
44
  id: string;
45
- size: number | null;
46
45
  userId: string | null;
46
+ size: number | null;
47
47
  uploadedAt: Date | null;
48
48
  uploadStatus: import(".prisma/client").$Enums.UploadStatus;
49
49
  uploadUrl: string | null;
@@ -84,8 +84,8 @@ export declare const fileRouter: import("@trpc/server").TRPCBuiltRouter<{
84
84
  type: string;
85
85
  name: string;
86
86
  id: string;
87
- size: number | null;
88
87
  userId: string | null;
88
+ size: number | null;
89
89
  uploadedAt: Date | null;
90
90
  uploadStatus: import(".prisma/client").$Enums.UploadStatus;
91
91
  uploadUrl: string | null;
@@ -29,21 +29,21 @@ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
29
29
  type: string;
30
30
  name: string;
31
31
  id: string;
32
- size: number | null;
33
- uploadedAt: Date | null;
34
32
  user: {
35
33
  id: string;
36
34
  username: string;
37
35
  } | null;
36
+ size: number | null;
37
+ uploadedAt: Date | null;
38
38
  }[];
39
39
  childFolders: {
40
40
  name: string;
41
41
  id: string;
42
+ color: string | null;
42
43
  _count: {
43
44
  files: number;
44
45
  childFolders: number;
45
46
  };
46
- color: string | null;
47
47
  }[];
48
48
  } & {
49
49
  name: string;
@@ -65,21 +65,21 @@ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
65
65
  type: string;
66
66
  name: string;
67
67
  id: string;
68
- size: number | null;
69
- uploadedAt: Date | null;
70
68
  user: {
71
69
  id: string;
72
70
  username: string;
73
71
  } | null;
72
+ size: number | null;
73
+ uploadedAt: Date | null;
74
74
  }[];
75
75
  childFolders: {
76
76
  name: string;
77
77
  id: string;
78
+ color: string | null;
78
79
  _count: {
79
80
  files: number;
80
81
  childFolders: number;
81
82
  };
82
- color: string | null;
83
83
  }[];
84
84
  parentFolder: {
85
85
  name: string;
@@ -104,21 +104,21 @@ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
104
104
  type: string;
105
105
  name: string;
106
106
  id: string;
107
- size: number | null;
108
- uploadedAt: Date | null;
109
107
  user: {
110
108
  id: string;
111
109
  username: string;
112
110
  } | null;
111
+ size: number | null;
112
+ uploadedAt: Date | null;
113
113
  }[];
114
114
  childFolders: {
115
115
  name: string;
116
116
  id: string;
117
+ color: string | null;
117
118
  _count: {
118
119
  files: number;
119
120
  childFolders: number;
120
121
  };
121
- color: string | null;
122
122
  }[];
123
123
  } & {
124
124
  name: string;
@@ -140,21 +140,21 @@ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
140
140
  type: string;
141
141
  name: string;
142
142
  id: string;
143
- size: number | null;
144
- uploadedAt: Date | null;
145
143
  user: {
146
144
  id: string;
147
145
  username: string;
148
146
  } | null;
147
+ size: number | null;
148
+ uploadedAt: Date | null;
149
149
  }[];
150
150
  childFolders: {
151
151
  name: string;
152
152
  id: string;
153
+ color: string | null;
153
154
  _count: {
154
155
  files: number;
155
156
  childFolders: number;
156
157
  };
157
- color: string | null;
158
158
  }[];
159
159
  } & {
160
160
  name: string;
@@ -175,24 +175,24 @@ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
175
175
  type: string;
176
176
  name: string;
177
177
  id: string;
178
- size: number | null;
179
- uploadedAt: Date | null;
180
178
  user: {
181
179
  id: string;
182
180
  username: string;
183
181
  } | null;
182
+ size: number | null;
183
+ uploadedAt: Date | null;
184
184
  }[];
185
185
  childFolders: {
186
186
  name: string;
187
187
  id: string;
188
- files: {
189
- id: string;
190
- }[];
188
+ color: string | null;
191
189
  _count: {
192
190
  files: number;
193
191
  childFolders: number;
194
192
  };
195
- color: string | null;
193
+ files: {
194
+ id: string;
195
+ }[];
196
196
  childFolders: {
197
197
  id: string;
198
198
  }[];
@@ -248,21 +248,21 @@ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
248
248
  type: string;
249
249
  name: string;
250
250
  id: string;
251
- size: number | null;
252
- uploadedAt: Date | null;
253
251
  user: {
254
252
  id: string;
255
253
  username: string;
256
254
  } | null;
255
+ size: number | null;
256
+ uploadedAt: Date | null;
257
257
  }[];
258
258
  childFolders: {
259
259
  name: string;
260
260
  id: string;
261
+ color: string | null;
261
262
  _count: {
262
263
  files: number;
263
264
  childFolders: number;
264
265
  };
265
- color: string | null;
266
266
  }[];
267
267
  } & {
268
268
  name: string;
@@ -286,21 +286,21 @@ export declare const folderRouter: import("@trpc/server").TRPCBuiltRouter<{
286
286
  type: string;
287
287
  name: string;
288
288
  id: string;
289
- size: number | null;
290
- uploadedAt: Date | null;
291
289
  user: {
292
290
  id: string;
293
291
  username: string;
294
292
  } | null;
293
+ size: number | null;
294
+ uploadedAt: Date | null;
295
295
  }[];
296
296
  childFolders: {
297
297
  name: string;
298
298
  id: string;
299
+ color: string | null;
299
300
  _count: {
300
301
  files: number;
301
302
  childFolders: number;
302
303
  };
303
- color: string | null;
304
304
  }[];
305
305
  } & {
306
306
  name: string;
@@ -41,9 +41,9 @@ export declare const labChatRouter: import("@trpc/server").TRPCBuiltRouter<{
41
41
  };
42
42
  } & {
43
43
  id: string;
44
+ role: import(".prisma/client").$Enums.ConversationRole;
44
45
  userId: string;
45
46
  conversationId: string;
46
- role: import(".prisma/client").$Enums.ConversationRole;
47
47
  joinedAt: Date;
48
48
  hiddenAt: Date | null;
49
49
  lastViewedAt: Date | null;
@@ -67,11 +67,11 @@ export declare const labChatRouter: import("@trpc/server").TRPCBuiltRouter<{
67
67
  } & {
68
68
  context: string;
69
69
  id: string;
70
- conversationId: string;
71
70
  createdAt: Date;
71
+ updatedAt: Date;
72
+ conversationId: string;
72
73
  classId: string;
73
74
  title: string;
74
- updatedAt: Date;
75
75
  createdById: string;
76
76
  };
77
77
  meta: object;
@@ -100,9 +100,9 @@ export declare const labChatRouter: import("@trpc/server").TRPCBuiltRouter<{
100
100
  };
101
101
  } & {
102
102
  id: string;
103
+ role: import(".prisma/client").$Enums.ConversationRole;
103
104
  userId: string;
104
105
  conversationId: string;
105
- role: import(".prisma/client").$Enums.ConversationRole;
106
106
  joinedAt: Date;
107
107
  hiddenAt: Date | null;
108
108
  lastViewedAt: Date | null;
@@ -126,11 +126,11 @@ export declare const labChatRouter: import("@trpc/server").TRPCBuiltRouter<{
126
126
  };
127
127
  context: string;
128
128
  id: string;
129
- conversationId: string;
130
129
  createdAt: Date;
130
+ updatedAt: Date;
131
+ conversationId: string;
131
132
  classId: string;
132
133
  title: string;
133
- updatedAt: Date;
134
134
  createdById: string;
135
135
  };
136
136
  meta: object;
@@ -165,8 +165,8 @@ export declare const labChatRouter: import("@trpc/server").TRPCBuiltRouter<{
165
165
  status: import(".prisma/client").$Enums.GenerationStatus | null;
166
166
  meta: import("@prisma/client/runtime/library.js").JsonValue | null;
167
167
  id: string;
168
- conversationId: string;
169
168
  createdAt: Date;
169
+ conversationId: string;
170
170
  content: string;
171
171
  senderId: string;
172
172
  };