@studious-lms/server 1.7.0 → 1.9.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.
- package/dist/middleware/security.d.ts.map +1 -1
- package/dist/middleware/security.js +3 -3
- package/dist/middleware/security.js.map +1 -1
- package/dist/models/access.d.ts +21 -66
- package/dist/models/access.d.ts.map +1 -1
- package/dist/models/access.js +10 -26
- package/dist/models/access.js.map +1 -1
- package/dist/models/agenda.d.ts +4 -2
- package/dist/models/agenda.d.ts.map +1 -1
- package/dist/models/announcement.d.ts +4 -3
- package/dist/models/announcement.d.ts.map +1 -1
- package/dist/models/announcement.js +2 -3
- package/dist/models/announcement.js.map +1 -1
- package/dist/models/assignment.d.ts +40 -33
- package/dist/models/assignment.d.ts.map +1 -1
- package/dist/models/auth.d.ts +2 -4
- package/dist/models/auth.d.ts.map +1 -1
- package/dist/models/auth.js +2 -3
- package/dist/models/auth.js.map +1 -1
- package/dist/models/class.d.ts +34 -6
- package/dist/models/class.d.ts.map +1 -1
- package/dist/models/class.js +15 -2
- package/dist/models/class.js.map +1 -1
- package/dist/models/cloudStorage.d.ts +153 -0
- package/dist/models/cloudStorage.d.ts.map +1 -0
- package/dist/models/cloudStorage.js +295 -0
- package/dist/models/cloudStorage.js.map +1 -0
- package/dist/models/comment.d.ts +0 -24
- package/dist/models/comment.d.ts.map +1 -1
- package/dist/models/comment.js +2 -6
- package/dist/models/comment.js.map +1 -1
- package/dist/models/conversation.d.ts +22 -22
- package/dist/models/department.d.ts +154 -0
- package/dist/models/department.d.ts.map +1 -0
- package/dist/models/department.js +135 -0
- package/dist/models/department.js.map +1 -0
- package/dist/models/event.d.ts +10 -4
- package/dist/models/event.d.ts.map +1 -1
- package/dist/models/event.js +2 -5
- package/dist/models/event.js.map +1 -1
- package/dist/models/file.d.ts +52 -36
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/file.js +4 -42
- package/dist/models/file.js.map +1 -1
- package/dist/models/folder.d.ts +47 -0
- package/dist/models/folder.d.ts.map +1 -1
- package/dist/models/labChat.d.ts +11 -9
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/message.d.ts +46 -12
- package/dist/models/message.d.ts.map +1 -1
- package/dist/models/message.js +19 -10
- package/dist/models/message.js.map +1 -1
- package/dist/models/newtonChat.d.ts +2 -1
- package/dist/models/newtonChat.d.ts.map +1 -1
- package/dist/models/school.d.ts +45 -12
- package/dist/models/school.d.ts.map +1 -1
- package/dist/models/school.js +19 -2
- package/dist/models/school.js.map +1 -1
- package/dist/models/section.d.ts +2 -1
- package/dist/models/section.d.ts.map +1 -1
- package/dist/models/tag.d.ts +117 -0
- package/dist/models/tag.d.ts.map +1 -0
- package/dist/models/tag.js +113 -0
- package/dist/models/tag.js.map +1 -0
- package/dist/models/worksheet.d.ts +3 -0
- package/dist/models/worksheet.d.ts.map +1 -1
- package/dist/pipelines/aiLabChatContract.d.ts +8 -8
- package/dist/routers/_app.d.ts +6704 -5222
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +8 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/agenda.d.ts +4 -2
- package/dist/routers/agenda.d.ts.map +1 -1
- package/dist/routers/announcement.d.ts.map +1 -1
- package/dist/routers/announcement.js +3 -5
- package/dist/routers/announcement.js.map +1 -1
- package/dist/routers/assignment.d.ts +49 -40
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/assignment.js +2 -3
- package/dist/routers/assignment.js.map +1 -1
- package/dist/routers/class.d.ts +92 -19
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +5 -2
- package/dist/routers/class.js.map +1 -1
- package/dist/routers/conversation.d.ts +5 -5
- package/dist/routers/department.d.ts +293 -0
- package/dist/routers/department.d.ts.map +1 -0
- package/dist/routers/department.js +93 -0
- package/dist/routers/department.js.map +1 -0
- package/dist/routers/event.d.ts +4 -3
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/file.d.ts +10 -8
- package/dist/routers/file.d.ts.map +1 -1
- package/dist/routers/file.js +26 -17
- package/dist/routers/file.js.map +1 -1
- package/dist/routers/folder.d.ts +163 -186
- package/dist/routers/folder.d.ts.map +1 -1
- package/dist/routers/folder.js +102 -88
- package/dist/routers/folder.js.map +1 -1
- package/dist/routers/labChat.d.ts +13 -4
- package/dist/routers/labChat.d.ts.map +1 -1
- package/dist/routers/message.d.ts +20 -2
- package/dist/routers/message.d.ts.map +1 -1
- package/dist/routers/newtonChat.d.ts +10 -1
- package/dist/routers/newtonChat.d.ts.map +1 -1
- package/dist/routers/permissions.d.ts +120 -0
- package/dist/routers/permissions.d.ts.map +1 -0
- package/dist/routers/permissions.js +50 -0
- package/dist/routers/permissions.js.map +1 -0
- package/dist/routers/school.d.ts +160 -17
- package/dist/routers/school.d.ts.map +1 -1
- package/dist/routers/school.js +46 -3
- package/dist/routers/school.js.map +1 -1
- package/dist/routers/tag.d.ts +119 -0
- package/dist/routers/tag.d.ts.map +1 -0
- package/dist/routers/tag.js +52 -0
- package/dist/routers/tag.js.map +1 -0
- package/dist/routers/worksheet.d.ts +1 -0
- package/dist/routers/worksheet.d.ts.map +1 -1
- package/dist/seedDatabase.d.ts +0 -1
- package/dist/seedDatabase.d.ts.map +1 -1
- package/dist/services/agenda.d.ts +4 -2
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/assignment.d.ts +49 -40
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/class.d.ts +92 -19
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/class.js +92 -5
- package/dist/services/class.js.map +1 -1
- package/dist/services/conversation.d.ts +5 -5
- package/dist/services/department.d.ts +200 -0
- package/dist/services/department.d.ts.map +1 -0
- package/dist/services/department.js +368 -0
- package/dist/services/department.js.map +1 -0
- package/dist/services/event.d.ts +4 -3
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/file.d.ts +105 -3
- package/dist/services/file.d.ts.map +1 -1
- package/dist/services/file.js +167 -41
- package/dist/services/file.js.map +1 -1
- package/dist/services/folder.d.ts +220 -149
- package/dist/services/folder.d.ts.map +1 -1
- package/dist/services/folder.js +326 -196
- package/dist/services/folder.js.map +1 -1
- package/dist/services/labChat.d.ts +13 -4
- package/dist/services/labChat.d.ts.map +1 -1
- package/dist/services/labChat.js +4 -3
- package/dist/services/labChat.js.map +1 -1
- package/dist/services/message.d.ts +20 -2
- package/dist/services/message.d.ts.map +1 -1
- package/dist/services/message.js +7 -23
- package/dist/services/message.js.map +1 -1
- package/dist/services/newtonChat.d.ts +9 -0
- package/dist/services/newtonChat.d.ts.map +1 -1
- package/dist/services/newtonChat.js +4 -3
- package/dist/services/newtonChat.js.map +1 -1
- package/dist/services/permissions.d.ts +188 -0
- package/dist/services/permissions.d.ts.map +1 -0
- package/dist/services/permissions.js +661 -0
- package/dist/services/permissions.js.map +1 -0
- package/dist/services/school.d.ts +142 -15
- package/dist/services/school.d.ts.map +1 -1
- package/dist/services/school.js +308 -54
- package/dist/services/school.js.map +1 -1
- package/dist/services/tag.d.ts +71 -0
- package/dist/services/tag.d.ts.map +1 -0
- package/dist/services/tag.js +178 -0
- package/dist/services/tag.js.map +1 -0
- package/dist/services/worksheet.d.ts +1 -0
- package/dist/services/worksheet.d.ts.map +1 -1
- package/dist/utils/aiUser.d.ts.map +1 -1
- package/dist/utils/aiUser.js +2 -3
- package/dist/utils/aiUser.js.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20260509220000_institution_overhaul/migration.sql +184 -0
- package/prisma/migrations/20260510170000_add_folder_permissions/migration.sql +93 -0
- package/prisma/schema.prisma +193 -35
- package/src/middleware/security.ts +1 -1
- package/src/models/access.ts +8 -24
- package/src/models/announcement.ts +0 -1
- package/src/models/auth.ts +0 -1
- package/src/models/class.ts +13 -0
- package/src/models/cloudStorage.ts +327 -0
- package/src/models/comment.ts +0 -4
- package/src/models/department.ts +159 -0
- package/src/models/event.ts +0 -3
- package/src/models/file.ts +2 -40
- package/src/models/message.ts +19 -5
- package/src/models/school.ts +26 -0
- package/src/models/tag.ts +140 -0
- package/src/routers/_app.ts +6 -0
- package/src/routers/announcement.ts +1 -3
- package/src/routers/assignment.ts +0 -1
- package/src/routers/class.ts +3 -0
- package/src/routers/department.ts +174 -0
- package/src/routers/file.ts +29 -26
- package/src/routers/folder.ts +127 -118
- package/src/routers/permissions.ts +71 -0
- package/src/routers/school.ts +83 -0
- package/src/routers/tag.ts +78 -0
- package/src/services/class.ts +109 -4
- package/src/services/department.ts +478 -0
- package/src/services/file.ts +172 -43
- package/src/services/folder.ts +399 -237
- package/src/services/labChat.ts +2 -1
- package/src/services/message.ts +5 -21
- package/src/services/newtonChat.ts +2 -1
- package/src/services/permissions.ts +778 -0
- package/src/services/school.ts +369 -57
- package/src/services/tag.ts +229 -0
- package/src/utils/aiUser.ts +0 -1
- package/tests/unit/services/permissions.test.ts +463 -0
package/dist/models/folder.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare function findClassWithTeacher(classId: string, teacherId: string)
|
|
|
7
7
|
color: string | null;
|
|
8
8
|
section: string;
|
|
9
9
|
syllabus: string | null;
|
|
10
|
+
departmentId: string | null;
|
|
10
11
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
11
12
|
datasources: {
|
|
12
13
|
db: {
|
|
@@ -20,6 +21,9 @@ export declare function findFolderById(folderId: string): import(".prisma/client
|
|
|
20
21
|
id: string;
|
|
21
22
|
color: string | null;
|
|
22
23
|
classId: string | null;
|
|
24
|
+
schoolStorageId: string | null;
|
|
25
|
+
personalOwnerId: string | null;
|
|
26
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
23
27
|
parentFolderId: string | null;
|
|
24
28
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
25
29
|
datasources: {
|
|
@@ -38,12 +42,16 @@ export declare function findFolderByIdWithClass(folderId: string): import(".pris
|
|
|
38
42
|
color: string | null;
|
|
39
43
|
section: string;
|
|
40
44
|
syllabus: string | null;
|
|
45
|
+
departmentId: string | null;
|
|
41
46
|
} | null;
|
|
42
47
|
} & {
|
|
43
48
|
name: string;
|
|
44
49
|
id: string;
|
|
45
50
|
color: string | null;
|
|
46
51
|
classId: string | null;
|
|
52
|
+
schoolStorageId: string | null;
|
|
53
|
+
personalOwnerId: string | null;
|
|
54
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
47
55
|
parentFolderId: string | null;
|
|
48
56
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
49
57
|
datasources: {
|
|
@@ -58,6 +66,9 @@ export declare function findRootFolderByClassId(classId: string): import(".prism
|
|
|
58
66
|
id: string;
|
|
59
67
|
color: string | null;
|
|
60
68
|
classId: string | null;
|
|
69
|
+
schoolStorageId: string | null;
|
|
70
|
+
personalOwnerId: string | null;
|
|
71
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
61
72
|
parentFolderId: string | null;
|
|
62
73
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
63
74
|
datasources: {
|
|
@@ -72,6 +83,9 @@ export declare function findOrCreateRootFolder(classId: string): Promise<{
|
|
|
72
83
|
id: string;
|
|
73
84
|
color: string | null;
|
|
74
85
|
classId: string | null;
|
|
86
|
+
schoolStorageId: string | null;
|
|
87
|
+
personalOwnerId: string | null;
|
|
88
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
75
89
|
parentFolderId: string | null;
|
|
76
90
|
}>;
|
|
77
91
|
/** Create a folder. */
|
|
@@ -106,6 +120,9 @@ export declare function createFolder(data: {
|
|
|
106
120
|
id: string;
|
|
107
121
|
color: string | null;
|
|
108
122
|
classId: string | null;
|
|
123
|
+
schoolStorageId: string | null;
|
|
124
|
+
personalOwnerId: string | null;
|
|
125
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
109
126
|
parentFolderId: string | null;
|
|
110
127
|
}, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
111
128
|
datasources: {
|
|
@@ -145,6 +162,9 @@ export declare function findFolderWithContents(folderId: string): import(".prism
|
|
|
145
162
|
id: string;
|
|
146
163
|
color: string | null;
|
|
147
164
|
classId: string | null;
|
|
165
|
+
schoolStorageId: string | null;
|
|
166
|
+
personalOwnerId: string | null;
|
|
167
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
148
168
|
parentFolderId: string | null;
|
|
149
169
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
150
170
|
datasources: {
|
|
@@ -180,6 +200,9 @@ export declare function findChildFolders(parentFolderId: string): import(".prism
|
|
|
180
200
|
id: string;
|
|
181
201
|
color: string | null;
|
|
182
202
|
classId: string | null;
|
|
203
|
+
schoolStorageId: string | null;
|
|
204
|
+
personalOwnerId: string | null;
|
|
205
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
183
206
|
parentFolderId: string | null;
|
|
184
207
|
})[]>;
|
|
185
208
|
/** @returns Root folder with contents for a class. */
|
|
@@ -215,6 +238,9 @@ export declare function findRootFolderWithContents(classId: string): import(".pr
|
|
|
215
238
|
id: string;
|
|
216
239
|
color: string | null;
|
|
217
240
|
classId: string | null;
|
|
241
|
+
schoolStorageId: string | null;
|
|
242
|
+
personalOwnerId: string | null;
|
|
243
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
218
244
|
parentFolderId: string | null;
|
|
219
245
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
220
246
|
datasources: {
|
|
@@ -234,6 +260,9 @@ export declare function findFolderWithCount(folderId: string, classId: string):
|
|
|
234
260
|
id: string;
|
|
235
261
|
color: string | null;
|
|
236
262
|
classId: string | null;
|
|
263
|
+
schoolStorageId: string | null;
|
|
264
|
+
personalOwnerId: string | null;
|
|
265
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
237
266
|
parentFolderId: string | null;
|
|
238
267
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
239
268
|
datasources: {
|
|
@@ -253,6 +282,9 @@ export declare function findFolderByIdWithCount(folderId: string): import(".pris
|
|
|
253
282
|
id: string;
|
|
254
283
|
color: string | null;
|
|
255
284
|
classId: string | null;
|
|
285
|
+
schoolStorageId: string | null;
|
|
286
|
+
personalOwnerId: string | null;
|
|
287
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
256
288
|
parentFolderId: string | null;
|
|
257
289
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
258
290
|
datasources: {
|
|
@@ -267,6 +299,9 @@ export declare function deleteFolderById(folderId: string): import(".prisma/clie
|
|
|
267
299
|
id: string;
|
|
268
300
|
color: string | null;
|
|
269
301
|
classId: string | null;
|
|
302
|
+
schoolStorageId: string | null;
|
|
303
|
+
personalOwnerId: string | null;
|
|
304
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
270
305
|
parentFolderId: string | null;
|
|
271
306
|
}, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
272
307
|
datasources: {
|
|
@@ -302,6 +337,9 @@ export declare function updateFolderParent(folderId: string, parentFolderId: str
|
|
|
302
337
|
id: string;
|
|
303
338
|
color: string | null;
|
|
304
339
|
classId: string | null;
|
|
340
|
+
schoolStorageId: string | null;
|
|
341
|
+
personalOwnerId: string | null;
|
|
342
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
305
343
|
parentFolderId: string | null;
|
|
306
344
|
}, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
307
345
|
datasources: {
|
|
@@ -340,6 +378,9 @@ export declare function updateFolder(folderId: string, data: {
|
|
|
340
378
|
id: string;
|
|
341
379
|
color: string | null;
|
|
342
380
|
classId: string | null;
|
|
381
|
+
schoolStorageId: string | null;
|
|
382
|
+
personalOwnerId: string | null;
|
|
383
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
343
384
|
parentFolderId: string | null;
|
|
344
385
|
}, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
345
386
|
datasources: {
|
|
@@ -354,6 +395,9 @@ export declare function findFolderByIdForTraversal(id: string): import(".prisma/
|
|
|
354
395
|
id: string;
|
|
355
396
|
color: string | null;
|
|
356
397
|
classId: string | null;
|
|
398
|
+
schoolStorageId: string | null;
|
|
399
|
+
personalOwnerId: string | null;
|
|
400
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
357
401
|
parentFolderId: string | null;
|
|
358
402
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
359
403
|
datasources: {
|
|
@@ -368,6 +412,9 @@ export declare function findFolderParents(folderId: string): import(".prisma/cli
|
|
|
368
412
|
id: string;
|
|
369
413
|
color: string | null;
|
|
370
414
|
classId: string | null;
|
|
415
|
+
schoolStorageId: string | null;
|
|
416
|
+
personalOwnerId: string | null;
|
|
417
|
+
scope: import(".prisma/client").$Enums.FolderScope;
|
|
371
418
|
parentFolderId: string | null;
|
|
372
419
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
373
420
|
datasources: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder.d.ts","sourceRoot":"/","sources":["models/folder.ts"],"names":[],"mappings":"AAsBA,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"folder.d.ts","sourceRoot":"/","sources":["models/folder.ts"],"names":[],"mappings":"AAsBA,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;GAOtE;AAED,6BAA6B;AAC7B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;GAI9C;AAED,kCAAkC;AAClC,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;GAKvD;AAED,wCAAwC;AACxC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;GAOtD;AAED,6CAA6C;AAC7C,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM;;;;;;;;;GAW3D;AAED,uBAAuB;AACvB,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqBA;AAcD,oDAAoD;AACpD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKtD;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAetD;AAED,sDAAsD;AACtD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkBzD;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;GAOpE;AAED,+CAA+C;AAC/C,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;GAOvD;AAED,uBAAuB;AACvB,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;GAIhD;AAED,iCAAiC;AACjC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAS1E;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUxC;AAED,0CAA0C;AAC1C,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;GAIpD;AAED,6BAA6B;AAC7B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;GAIjD"}
|
package/dist/models/labChat.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare function findClassWithTeachersForLab(classId: string, teacherId:
|
|
|
24
24
|
color: string | null;
|
|
25
25
|
section: string;
|
|
26
26
|
syllabus: string | null;
|
|
27
|
+
departmentId: string | null;
|
|
27
28
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
28
29
|
datasources: {
|
|
29
30
|
db: {
|
|
@@ -51,8 +52,8 @@ export declare function findLabChatByMember(labChatId: string, userId: string):
|
|
|
51
52
|
};
|
|
52
53
|
} & {
|
|
53
54
|
id: string;
|
|
54
|
-
role: import(".prisma/client").$Enums.ConversationRole;
|
|
55
55
|
userId: string;
|
|
56
|
+
role: import(".prisma/client").$Enums.ConversationRole;
|
|
56
57
|
conversationId: string;
|
|
57
58
|
joinedAt: Date;
|
|
58
59
|
hiddenAt: Date | null;
|
|
@@ -80,8 +81,8 @@ export declare function findLabChatByMember(labChatId: string, userId: string):
|
|
|
80
81
|
id: string;
|
|
81
82
|
createdAt: Date;
|
|
82
83
|
updatedAt: Date;
|
|
83
|
-
conversationId: string;
|
|
84
84
|
classId: string;
|
|
85
|
+
conversationId: string;
|
|
85
86
|
title: string;
|
|
86
87
|
createdById: string;
|
|
87
88
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
@@ -101,8 +102,8 @@ export declare function findLabChatByTeacher(labChatId: string, userId: string):
|
|
|
101
102
|
id: string;
|
|
102
103
|
createdAt: Date;
|
|
103
104
|
updatedAt: Date;
|
|
104
|
-
conversationId: string;
|
|
105
105
|
classId: string;
|
|
106
|
+
conversationId: string;
|
|
106
107
|
title: string;
|
|
107
108
|
createdById: string;
|
|
108
109
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
@@ -132,8 +133,8 @@ export declare function findLabChatById(labChatId: string): import(".prisma/clie
|
|
|
132
133
|
};
|
|
133
134
|
} & {
|
|
134
135
|
id: string;
|
|
135
|
-
role: import(".prisma/client").$Enums.ConversationRole;
|
|
136
136
|
userId: string;
|
|
137
|
+
role: import(".prisma/client").$Enums.ConversationRole;
|
|
137
138
|
conversationId: string;
|
|
138
139
|
joinedAt: Date;
|
|
139
140
|
hiddenAt: Date | null;
|
|
@@ -161,8 +162,8 @@ export declare function findLabChatById(labChatId: string): import(".prisma/clie
|
|
|
161
162
|
id: string;
|
|
162
163
|
createdAt: Date;
|
|
163
164
|
updatedAt: Date;
|
|
164
|
-
conversationId: string;
|
|
165
165
|
classId: string;
|
|
166
|
+
conversationId: string;
|
|
166
167
|
title: string;
|
|
167
168
|
createdById: string;
|
|
168
169
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
@@ -181,6 +182,7 @@ export declare function findClassMembership(classId: string, userId: string): im
|
|
|
181
182
|
color: string | null;
|
|
182
183
|
section: string;
|
|
183
184
|
syllabus: string | null;
|
|
185
|
+
departmentId: string | null;
|
|
184
186
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
185
187
|
datasources: {
|
|
186
188
|
db: {
|
|
@@ -232,8 +234,8 @@ export declare function findLabChatsByClass(classId: string): import(".prisma/cl
|
|
|
232
234
|
id: string;
|
|
233
235
|
createdAt: Date;
|
|
234
236
|
updatedAt: Date;
|
|
235
|
-
conversationId: string;
|
|
236
237
|
classId: string;
|
|
238
|
+
conversationId: string;
|
|
237
239
|
title: string;
|
|
238
240
|
createdById: string;
|
|
239
241
|
})[]>;
|
|
@@ -247,8 +249,8 @@ export declare function findLabChatForPost(labChatId: string, userId: string): i
|
|
|
247
249
|
id: string;
|
|
248
250
|
createdAt: Date;
|
|
249
251
|
updatedAt: Date;
|
|
250
|
-
conversationId: string;
|
|
251
252
|
classId: string;
|
|
253
|
+
conversationId: string;
|
|
252
254
|
title: string;
|
|
253
255
|
createdById: string;
|
|
254
256
|
}) | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
@@ -264,8 +266,8 @@ export declare function findLabChatForDelete(labChatId: string, userId: string):
|
|
|
264
266
|
id: string;
|
|
265
267
|
createdAt: Date;
|
|
266
268
|
updatedAt: Date;
|
|
267
|
-
conversationId: string;
|
|
268
269
|
classId: string;
|
|
270
|
+
conversationId: string;
|
|
269
271
|
title: string;
|
|
270
272
|
createdById: string;
|
|
271
273
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
@@ -278,8 +280,8 @@ export declare function findLabChatForDelete(labChatId: string, userId: string):
|
|
|
278
280
|
/** @returns Conversation members for mentioned user IDs. */
|
|
279
281
|
export declare function findMentionedMemberships(conversationId: string, userIds: string[]): import(".prisma/client").Prisma.PrismaPromise<{
|
|
280
282
|
id: string;
|
|
281
|
-
role: import(".prisma/client").$Enums.ConversationRole;
|
|
282
283
|
userId: string;
|
|
284
|
+
role: import(".prisma/client").$Enums.ConversationRole;
|
|
283
285
|
conversationId: string;
|
|
284
286
|
joinedAt: Date;
|
|
285
287
|
hiddenAt: Date | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labChat.d.ts","sourceRoot":"/","sources":["models/labChat.ts"],"names":[],"mappings":"AAoDA,kEAAkE;AAClE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"labChat.d.ts","sourceRoot":"/","sources":["models/labChat.ts"],"names":[],"mappings":"AAoDA,kEAAkE;AAClE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiC7E;AAED,0DAA0D;AAC1D,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUpE;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;GAYrE;AAED,+BAA+B;AAC/B,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKhD;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;GAOlE;AAED,sCAAsC;AACtC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwClD;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;GAYnE;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;GAOrE;AAED,4DAA4D;AAC5D,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EAAE;;;;;;;;;KAQlB"}
|
package/dist/models/message.d.ts
CHANGED
|
@@ -1,8 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message model – messages, attachments, mentions, unread counts.
|
|
3
|
+
*/
|
|
4
|
+
import type { Prisma } from "@prisma/client";
|
|
5
|
+
/**
|
|
6
|
+
* Canonical shape for File rows surfaced as message attachments.
|
|
7
|
+
* Use this everywhere a message (list, send, update, suggestion broadcast)
|
|
8
|
+
* exposes attached files so the wire shape stays in sync.
|
|
9
|
+
*/
|
|
10
|
+
export declare const messageFileSelect: {
|
|
11
|
+
readonly id: true;
|
|
12
|
+
readonly name: true;
|
|
13
|
+
readonly type: true;
|
|
14
|
+
readonly size: true;
|
|
15
|
+
readonly path: true;
|
|
16
|
+
readonly uploadedAt: true;
|
|
17
|
+
readonly uploadStatus: true;
|
|
18
|
+
readonly thumbnailId: true;
|
|
19
|
+
readonly thumbnail: {
|
|
20
|
+
readonly select: {
|
|
21
|
+
readonly id: true;
|
|
22
|
+
readonly path: true;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
1
26
|
/** @returns User's membership in a conversation. */
|
|
2
|
-
export declare function findConversationMembership(conversationId: string, userId: string):
|
|
27
|
+
export declare function findConversationMembership(conversationId: string, userId: string): Prisma.Prisma__ConversationMemberClient<{
|
|
3
28
|
id: string;
|
|
4
|
-
role: import(".prisma/client").$Enums.ConversationRole;
|
|
5
29
|
userId: string;
|
|
30
|
+
role: import(".prisma/client").$Enums.ConversationRole;
|
|
6
31
|
conversationId: string;
|
|
7
32
|
joinedAt: Date;
|
|
8
33
|
hiddenAt: Date | null;
|
|
@@ -19,7 +44,7 @@ export declare function findConversationMembership(conversationId: string, userI
|
|
|
19
44
|
export declare function findMessages(conversationId: string, options: {
|
|
20
45
|
cursor?: Date;
|
|
21
46
|
limit: number;
|
|
22
|
-
}):
|
|
47
|
+
}): Prisma.PrismaPromise<({
|
|
23
48
|
mentions: ({
|
|
24
49
|
user: {
|
|
25
50
|
id: string;
|
|
@@ -35,9 +60,18 @@ export declare function findMessages(conversationId: string, options: {
|
|
|
35
60
|
messageId: string;
|
|
36
61
|
})[];
|
|
37
62
|
attachments: {
|
|
63
|
+
path: string;
|
|
38
64
|
type: string;
|
|
39
65
|
name: string;
|
|
40
66
|
id: string;
|
|
67
|
+
size: number | null;
|
|
68
|
+
uploadedAt: Date | null;
|
|
69
|
+
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
70
|
+
thumbnailId: string | null;
|
|
71
|
+
thumbnail: {
|
|
72
|
+
path: string;
|
|
73
|
+
id: string;
|
|
74
|
+
} | null;
|
|
41
75
|
}[];
|
|
42
76
|
sender: {
|
|
43
77
|
id: string;
|
|
@@ -49,7 +83,7 @@ export declare function findMessages(conversationId: string, options: {
|
|
|
49
83
|
};
|
|
50
84
|
} & {
|
|
51
85
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
52
|
-
meta:
|
|
86
|
+
meta: Prisma.JsonValue | null;
|
|
53
87
|
id: string;
|
|
54
88
|
createdAt: Date;
|
|
55
89
|
conversationId: string;
|
|
@@ -58,10 +92,10 @@ export declare function findMessages(conversationId: string, options: {
|
|
|
58
92
|
runJobId: string | null;
|
|
59
93
|
})[]>;
|
|
60
94
|
/** @returns Memberships for mentioned users. */
|
|
61
|
-
export declare function findMentionedMemberships(conversationId: string, userIds: string[]):
|
|
95
|
+
export declare function findMentionedMemberships(conversationId: string, userIds: string[]): Prisma.PrismaPromise<{
|
|
62
96
|
id: string;
|
|
63
|
-
role: import(".prisma/client").$Enums.ConversationRole;
|
|
64
97
|
userId: string;
|
|
98
|
+
role: import(".prisma/client").$Enums.ConversationRole;
|
|
65
99
|
conversationId: string;
|
|
66
100
|
joinedAt: Date;
|
|
67
101
|
hiddenAt: Date | null;
|
|
@@ -69,7 +103,7 @@ export declare function findMentionedMemberships(conversationId: string, userIds
|
|
|
69
103
|
lastViewedMentionAt: Date | null;
|
|
70
104
|
}[]>;
|
|
71
105
|
/** @returns Message by ID with sender. */
|
|
72
|
-
export declare function findMessageById(messageId: string):
|
|
106
|
+
export declare function findMessageById(messageId: string): Prisma.Prisma__MessageClient<({
|
|
73
107
|
sender: {
|
|
74
108
|
id: string;
|
|
75
109
|
username: string;
|
|
@@ -80,7 +114,7 @@ export declare function findMessageById(messageId: string): import(".prisma/clie
|
|
|
80
114
|
};
|
|
81
115
|
} & {
|
|
82
116
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
83
|
-
meta:
|
|
117
|
+
meta: Prisma.JsonValue | null;
|
|
84
118
|
id: string;
|
|
85
119
|
createdAt: Date;
|
|
86
120
|
conversationId: string;
|
|
@@ -95,14 +129,14 @@ export declare function findMessageById(messageId: string): import(".prisma/clie
|
|
|
95
129
|
};
|
|
96
130
|
}>;
|
|
97
131
|
/** @returns Message by ID with minimal sender. */
|
|
98
|
-
export declare function findMessageByIdMinimal(messageId: string):
|
|
132
|
+
export declare function findMessageByIdMinimal(messageId: string): Prisma.Prisma__MessageClient<({
|
|
99
133
|
sender: {
|
|
100
134
|
id: string;
|
|
101
135
|
username: string;
|
|
102
136
|
};
|
|
103
137
|
} & {
|
|
104
138
|
status: import(".prisma/client").$Enums.JobStatus | null;
|
|
105
|
-
meta:
|
|
139
|
+
meta: Prisma.JsonValue | null;
|
|
106
140
|
id: string;
|
|
107
141
|
createdAt: Date;
|
|
108
142
|
conversationId: string;
|
|
@@ -117,7 +151,7 @@ export declare function findMessageByIdMinimal(messageId: string): import(".pris
|
|
|
117
151
|
};
|
|
118
152
|
}>;
|
|
119
153
|
/** Count messages in conversation after date, excluding sender's own. */
|
|
120
|
-
export declare function countUnreadMessages(conversationId: string, userId: string, after?: Date):
|
|
154
|
+
export declare function countUnreadMessages(conversationId: string, userId: string, after?: Date): Prisma.PrismaPromise<number>;
|
|
121
155
|
/** Count mentions of user in conversation after date. */
|
|
122
|
-
export declare function countUnreadMentions(conversationId: string, userId: string, after?: Date):
|
|
156
|
+
export declare function countUnreadMentions(conversationId: string, userId: string, after?: Date): Prisma.PrismaPromise<number>;
|
|
123
157
|
//# sourceMappingURL=message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"/","sources":["models/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"/","sources":["models/message.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAUQ,CAAC;AA8CvC,oDAAoD;AACpD,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;GAOhF;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAaF;AAED,gDAAgD;AAChD,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EAAE;;;;;;;;;KAQlB;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;GAShD;AAED,kDAAkD;AAClD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;GASvD;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,IAAI,gCASb;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,IAAI,gCAYb"}
|
package/dist/models/message.js
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Message model – messages, attachments, mentions, unread counts.
|
|
3
|
-
*/
|
|
4
1
|
|
|
5
|
-
!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]="
|
|
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]="1e1e6caf-dc79-5d78-a309-1301edb60f78")}catch(e){}}();
|
|
6
3
|
import { prisma } from "../lib/prisma.js";
|
|
4
|
+
/**
|
|
5
|
+
* Canonical shape for File rows surfaced as message attachments.
|
|
6
|
+
* Use this everywhere a message (list, send, update, suggestion broadcast)
|
|
7
|
+
* exposes attached files so the wire shape stays in sync.
|
|
8
|
+
*/
|
|
9
|
+
export const messageFileSelect = {
|
|
10
|
+
id: true,
|
|
11
|
+
name: true,
|
|
12
|
+
type: true,
|
|
13
|
+
size: true,
|
|
14
|
+
path: true,
|
|
15
|
+
uploadedAt: true,
|
|
16
|
+
uploadStatus: true,
|
|
17
|
+
thumbnailId: true,
|
|
18
|
+
thumbnail: { select: { id: true, path: true } },
|
|
19
|
+
};
|
|
7
20
|
const messageInclude = {
|
|
8
21
|
attachments: {
|
|
9
|
-
select:
|
|
10
|
-
id: true,
|
|
11
|
-
name: true,
|
|
12
|
-
type: true,
|
|
13
|
-
},
|
|
22
|
+
select: messageFileSelect,
|
|
14
23
|
},
|
|
15
24
|
sender: {
|
|
16
25
|
select: {
|
|
@@ -128,4 +137,4 @@ export function countUnreadMentions(conversationId, userId, after) {
|
|
|
128
137
|
});
|
|
129
138
|
}
|
|
130
139
|
//# sourceMappingURL=message.js.map
|
|
131
|
-
//# debugId=
|
|
140
|
+
//# debugId=1e1e6caf-dc79-5d78-a309-1301edb60f78
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sources":["models/message.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Message model – messages, attachments, mentions, unread counts.\n */\nimport { prisma } from \"../lib/prisma.js\";\n\
|
|
1
|
+
{"version":3,"file":"message.js","sources":["models/message.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Message model – messages, attachments, mentions, unread counts.\n */\nimport type { Prisma } from \"@prisma/client\";\nimport { prisma } from \"../lib/prisma.js\";\n\n/**\n * Canonical shape for File rows surfaced as message attachments.\n * Use this everywhere a message (list, send, update, suggestion broadcast)\n * exposes attached files so the wire shape stays in sync.\n */\nexport const messageFileSelect = {\n id: true,\n name: true,\n type: true,\n size: true,\n path: true,\n uploadedAt: true,\n uploadStatus: true,\n thumbnailId: true,\n thumbnail: { select: { id: true, path: true } },\n} as const satisfies Prisma.FileSelect;\n\nconst messageInclude = {\n attachments: {\n select: messageFileSelect,\n },\n sender: {\n select: {\n id: true,\n username: true,\n profile: {\n select: {\n displayName: true,\n profilePicture: true,\n },\n },\n },\n },\n mentions: {\n include: {\n user: {\n select: {\n id: true,\n username: true,\n profile: {\n select: {\n displayName: true,\n },\n },\n },\n },\n },\n },\n};\n\nconst senderSelect = {\n id: true,\n username: true,\n profile: {\n select: {\n displayName: true,\n profilePicture: true,\n },\n },\n};\n\n/** @returns User's membership in a conversation. */\nexport function findConversationMembership(conversationId: string, userId: string) {\n return prisma.conversationMember.findFirst({\n where: {\n conversationId,\n userId,\n },\n });\n}\n\n/** @returns Messages in conversation with cursor pagination. */\nexport function findMessages(\n conversationId: string,\n options: {\n cursor?: Date;\n limit: number;\n }\n) {\n return prisma.message.findMany({\n where: {\n conversationId,\n ...(options.cursor && {\n createdAt: { lt: options.cursor },\n }),\n },\n include: messageInclude,\n orderBy: { createdAt: \"desc\" as const },\n take: options.limit + 1,\n });\n}\n\n/** @returns Memberships for mentioned users. */\nexport function findMentionedMemberships(\n conversationId: string,\n userIds: string[]\n) {\n return prisma.conversationMember.findMany({\n where: {\n conversationId,\n userId: { in: userIds },\n },\n });\n}\n\n/** @returns Message by ID with sender. */\nexport function findMessageById(messageId: string) {\n return prisma.message.findUnique({\n where: { id: messageId },\n include: {\n sender: {\n select: senderSelect,\n },\n },\n });\n}\n\n/** @returns Message by ID with minimal sender. */\nexport function findMessageByIdMinimal(messageId: string) {\n return prisma.message.findUnique({\n where: { id: messageId },\n include: {\n sender: {\n select: { id: true, username: true },\n },\n },\n });\n}\n\n/** Count messages in conversation after date, excluding sender's own. */\nexport function countUnreadMessages(\n conversationId: string,\n userId: string,\n after?: Date\n) {\n return prisma.message.count({\n where: {\n conversationId,\n senderId: { not: userId },\n ...(after && { createdAt: { gt: after } }),\n },\n });\n}\n\n/** Count mentions of user in conversation after date. */\nexport function countUnreadMentions(\n conversationId: string,\n userId: string,\n after?: Date\n) {\n return prisma.mention.count({\n where: {\n userId,\n message: {\n conversationId,\n senderId: { not: userId },\n ...(after && { createdAt: { gt: after } }),\n },\n },\n });\n}\n"],"names":[],"mappings":"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","debug_id":"1e1e6caf-dc79-5d78-a309-1301edb60f78"}
|
|
@@ -7,6 +7,7 @@ export declare function findClassWithStudent(classId: string, studentId: string)
|
|
|
7
7
|
color: string | null;
|
|
8
8
|
section: string;
|
|
9
9
|
syllabus: string | null;
|
|
10
|
+
departmentId: string | null;
|
|
10
11
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
11
12
|
datasources: {
|
|
12
13
|
db: {
|
|
@@ -86,8 +87,8 @@ export declare function findNewtonChatByIdAndMember(newtonChatId: string, userId
|
|
|
86
87
|
/** @returns Conversation members for given user IDs. */
|
|
87
88
|
export declare function findConversationMembersByUserIds(conversationId: string, userIds: string[]): import(".prisma/client").Prisma.PrismaPromise<{
|
|
88
89
|
id: string;
|
|
89
|
-
role: import(".prisma/client").$Enums.ConversationRole;
|
|
90
90
|
userId: string;
|
|
91
|
+
role: import(".prisma/client").$Enums.ConversationRole;
|
|
91
92
|
conversationId: string;
|
|
92
93
|
joinedAt: Date;
|
|
93
94
|
hiddenAt: Date | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newtonChat.d.ts","sourceRoot":"/","sources":["models/newtonChat.ts"],"names":[],"mappings":"AAKA,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"newtonChat.d.ts","sourceRoot":"/","sources":["models/newtonChat.ts"],"names":[],"mappings":"AAKA,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;GAOtE;AAED,sDAAsD;AACtD,wBAAgB,oCAAoC,CAClD,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;GAQlB;AAED,kFAAkF;AAClF,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyBf;AAED,wDAAwD;AACxD,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EAAE;;;;;;;;;KAQlB"}
|