@studious-lms/server 1.7.0 → 1.8.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/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 +2 -0
- package/dist/models/agenda.d.ts.map +1 -1
- package/dist/models/announcement.d.ts +2 -1
- 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 +7 -0
- 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 +32 -4
- 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 +140 -0
- package/dist/models/cloudStorage.d.ts.map +1 -0
- package/dist/models/cloudStorage.js +175 -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 +7 -1
- 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 +25 -10
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/file.js +2 -5
- 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 +5 -3
- 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 +1 -0
- 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 +3200 -1972
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +6 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/agenda.d.ts +2 -0
- 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 +18 -9
- 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 +87 -14
- 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 +2 -1
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/file.d.ts +8 -6
- 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 +139 -186
- package/dist/routers/folder.d.ts.map +1 -1
- package/dist/routers/folder.js +82 -90
- package/dist/routers/folder.js.map +1 -1
- package/dist/routers/labChat.d.ts +11 -2
- 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 +9 -0
- package/dist/routers/newtonChat.d.ts.map +1 -1
- 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 +2 -0
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/assignment.d.ts +18 -9
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/class.d.ts +87 -14
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/class.js +91 -4
- 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 +2 -1
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/file.d.ts +85 -0
- package/dist/services/file.d.ts.map +1 -1
- package/dist/services/file.js +92 -2
- package/dist/services/file.js.map +1 -1
- package/dist/services/folder.d.ts +125 -149
- package/dist/services/folder.d.ts.map +1 -1
- package/dist/services/folder.js +258 -199
- package/dist/services/folder.js.map +1 -1
- package/dist/services/labChat.d.ts +11 -2
- 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/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/schema.prisma +119 -35
- 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 +194 -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 +0 -3
- 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 +4 -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 +100 -121
- package/src/routers/school.ts +83 -0
- package/src/routers/tag.ts +78 -0
- package/src/services/class.ts +108 -3
- package/src/services/department.ts +478 -0
- package/src/services/file.ts +100 -0
- package/src/services/folder.ts +313 -240
- package/src/services/labChat.ts +2 -1
- package/src/services/message.ts +5 -21
- package/src/services/newtonChat.ts +2 -1
- package/src/services/school.ts +369 -57
- package/src/services/tag.ts +229 -0
- package/src/utils/aiUser.ts +0 -1
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"}
|
package/dist/models/school.d.ts
CHANGED
|
@@ -7,9 +7,9 @@ export declare function findSchoolMembership(schoolId: string, userId: string):
|
|
|
7
7
|
id: string;
|
|
8
8
|
createdAt: Date;
|
|
9
9
|
updatedAt: Date;
|
|
10
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
11
10
|
schoolId: string;
|
|
12
11
|
userId: string;
|
|
12
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
13
13
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
14
14
|
datasources: {
|
|
15
15
|
db: {
|
|
@@ -22,9 +22,9 @@ export declare function findActiveSchoolMembership(schoolId: string, userId: str
|
|
|
22
22
|
id: string;
|
|
23
23
|
createdAt: Date;
|
|
24
24
|
updatedAt: Date;
|
|
25
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
26
25
|
schoolId: string;
|
|
27
26
|
userId: string;
|
|
27
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
28
28
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
29
29
|
datasources: {
|
|
30
30
|
db: {
|
|
@@ -37,9 +37,9 @@ export declare function findActiveSchoolAdminMembership(schoolId: string, userId
|
|
|
37
37
|
id: string;
|
|
38
38
|
createdAt: Date;
|
|
39
39
|
updatedAt: Date;
|
|
40
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
41
40
|
schoolId: string;
|
|
42
41
|
userId: string;
|
|
42
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
43
43
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
44
44
|
datasources: {
|
|
45
45
|
db: {
|
|
@@ -51,19 +51,25 @@ export declare function listUserSchoolMemberships(userId: string): import(".pris
|
|
|
51
51
|
school: {
|
|
52
52
|
name: string;
|
|
53
53
|
id: string;
|
|
54
|
+
description: string | null;
|
|
54
55
|
logoId: string | null;
|
|
55
56
|
subdomain: string | null;
|
|
56
57
|
createdAt: Date;
|
|
57
58
|
updatedAt: Date;
|
|
59
|
+
logo: {
|
|
60
|
+
path: string;
|
|
61
|
+
type: string;
|
|
62
|
+
id: string;
|
|
63
|
+
} | null;
|
|
58
64
|
};
|
|
59
65
|
} & {
|
|
60
66
|
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
61
67
|
id: string;
|
|
62
68
|
createdAt: Date;
|
|
63
69
|
updatedAt: Date;
|
|
64
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
65
70
|
schoolId: string;
|
|
66
71
|
userId: string;
|
|
72
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
67
73
|
})[]>;
|
|
68
74
|
export declare function createSchoolWithAdmin(data: {
|
|
69
75
|
name: string;
|
|
@@ -76,13 +82,14 @@ export declare function createSchoolWithAdmin(data: {
|
|
|
76
82
|
id: string;
|
|
77
83
|
createdAt: Date;
|
|
78
84
|
updatedAt: Date;
|
|
79
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
80
85
|
schoolId: string;
|
|
81
86
|
userId: string;
|
|
87
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
82
88
|
}[];
|
|
83
89
|
} & {
|
|
84
90
|
name: string;
|
|
85
91
|
id: string;
|
|
92
|
+
description: string | null;
|
|
86
93
|
logoId: string | null;
|
|
87
94
|
subdomain: string | null;
|
|
88
95
|
createdAt: Date;
|
|
@@ -97,10 +104,17 @@ export declare function createSchoolWithAdmin(data: {
|
|
|
97
104
|
export declare function getSchoolById(schoolId: string): import(".prisma/client").Prisma.Prisma__SchoolClient<{
|
|
98
105
|
name: string;
|
|
99
106
|
id: string;
|
|
107
|
+
description: string | null;
|
|
100
108
|
logoId: string | null;
|
|
101
109
|
subdomain: string | null;
|
|
102
110
|
createdAt: Date;
|
|
103
111
|
updatedAt: Date;
|
|
112
|
+
logo: {
|
|
113
|
+
path: string;
|
|
114
|
+
type: string;
|
|
115
|
+
name: string;
|
|
116
|
+
id: string;
|
|
117
|
+
} | null;
|
|
104
118
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
105
119
|
datasources: {
|
|
106
120
|
db: {
|
|
@@ -108,6 +122,24 @@ export declare function getSchoolById(schoolId: string): import(".prisma/client"
|
|
|
108
122
|
};
|
|
109
123
|
};
|
|
110
124
|
}>;
|
|
125
|
+
export declare function updateSchoolRecord(schoolId: string, data: {
|
|
126
|
+
name?: string;
|
|
127
|
+
description?: string | null;
|
|
128
|
+
subdomain?: string | null;
|
|
129
|
+
logoId?: string | null;
|
|
130
|
+
}): import(".prisma/client").Prisma.Prisma__SchoolClient<{
|
|
131
|
+
name: string;
|
|
132
|
+
id: string;
|
|
133
|
+
description: string | null;
|
|
134
|
+
logoId: string | null;
|
|
135
|
+
subdomain: string | null;
|
|
136
|
+
}, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
137
|
+
datasources: {
|
|
138
|
+
db: {
|
|
139
|
+
url: string;
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
}>;
|
|
111
143
|
export declare function getSchoolOverview(schoolId: string): import(".prisma/client").Prisma.Prisma__SchoolClient<{
|
|
112
144
|
name: string;
|
|
113
145
|
id: string;
|
|
@@ -171,6 +203,7 @@ export declare function listSchoolClasses(schoolId: string): import(".prisma/cli
|
|
|
171
203
|
color: string | null;
|
|
172
204
|
section: string;
|
|
173
205
|
syllabus: string | null;
|
|
206
|
+
departmentId: string | null;
|
|
174
207
|
})[]>;
|
|
175
208
|
export declare function listSchoolMembers(schoolId: string): import(".prisma/client").Prisma.PrismaPromise<{
|
|
176
209
|
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
@@ -199,9 +232,9 @@ export declare function upsertSchoolMembership(data: {
|
|
|
199
232
|
id: string;
|
|
200
233
|
createdAt: Date;
|
|
201
234
|
updatedAt: Date;
|
|
202
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
203
235
|
schoolId: string;
|
|
204
236
|
userId: string;
|
|
237
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
205
238
|
}, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
206
239
|
datasources: {
|
|
207
240
|
db: {
|
|
@@ -214,9 +247,9 @@ export declare function updateSchoolMembershipRole(schoolId: string, userId: str
|
|
|
214
247
|
id: string;
|
|
215
248
|
createdAt: Date;
|
|
216
249
|
updatedAt: Date;
|
|
217
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
218
250
|
schoolId: string;
|
|
219
251
|
userId: string;
|
|
252
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
220
253
|
}, never, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
221
254
|
datasources: {
|
|
222
255
|
db: {
|
|
@@ -229,9 +262,9 @@ export declare function removeSchoolMembershipPreservingContent(schoolId: string
|
|
|
229
262
|
id: string;
|
|
230
263
|
createdAt: Date;
|
|
231
264
|
updatedAt: Date;
|
|
232
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
233
265
|
schoolId: string;
|
|
234
266
|
userId: string;
|
|
267
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
235
268
|
}>;
|
|
236
269
|
export declare function createSchoolInvite(data: {
|
|
237
270
|
schoolId: string;
|
|
@@ -251,8 +284,8 @@ export declare function createSchoolInvite(data: {
|
|
|
251
284
|
createdAt: Date;
|
|
252
285
|
updatedAt: Date;
|
|
253
286
|
email: string;
|
|
254
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
255
287
|
schoolId: string;
|
|
288
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
256
289
|
token: string;
|
|
257
290
|
expiresAt: Date;
|
|
258
291
|
acceptedAt: Date | null;
|
|
@@ -288,8 +321,8 @@ export declare function revokeSchoolInvite(inviteId: string, schoolId: string):
|
|
|
288
321
|
createdAt: Date;
|
|
289
322
|
updatedAt: Date;
|
|
290
323
|
email: string;
|
|
291
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
292
324
|
schoolId: string;
|
|
325
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
293
326
|
token: string;
|
|
294
327
|
expiresAt: Date;
|
|
295
328
|
acceptedAt: Date | null;
|
|
@@ -313,8 +346,8 @@ export declare function findPendingInviteByToken(token: string): import(".prisma
|
|
|
313
346
|
createdAt: Date;
|
|
314
347
|
updatedAt: Date;
|
|
315
348
|
email: string;
|
|
316
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
317
349
|
schoolId: string;
|
|
350
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
318
351
|
token: string;
|
|
319
352
|
expiresAt: Date;
|
|
320
353
|
acceptedAt: Date | null;
|
|
@@ -332,8 +365,8 @@ export declare function acceptSchoolInvite(inviteId: string, userId: string): Pr
|
|
|
332
365
|
id: string;
|
|
333
366
|
createdAt: Date;
|
|
334
367
|
updatedAt: Date;
|
|
335
|
-
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
336
368
|
schoolId: string;
|
|
337
369
|
userId: string;
|
|
370
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
338
371
|
}>;
|
|
339
372
|
//# sourceMappingURL=school.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"school.d.ts","sourceRoot":"/","sources":["models/school.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAyBtD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;GAIpE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;GAI1E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;GAI/E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"school.d.ts","sourceRoot":"/","sources":["models/school.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAyBtD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;GAIpE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;GAI1E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;GAI/E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;MAmBvD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;;;;;;;;;;;;;;GAoBA;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;GAc7C;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IACJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;;;;;;;;;;;;GAaF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CjD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsBjD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;KAMjD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,yDAIjD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,CAAC;CAC5B;;;;;;;;;;;;;;GAmBA;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,oBAAoB;;;;;;;;;;;;;;GAM3B;AAED,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;GAsBvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB;;;;;;;;;;;;;;;;;;;;;;;;GAOA;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;KAsBjD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;GAQpE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;GAKrD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;GAuClE"}
|
package/dist/models/school.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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]="
|
|
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]="bd2b1d00-966b-5892-8ade-ebc1e7ff80a1")}catch(e){}}();
|
|
3
3
|
import { prisma } from "../lib/prisma.js";
|
|
4
4
|
const memberSelect = {
|
|
5
5
|
id: true,
|
|
@@ -45,8 +45,10 @@ export function listUserSchoolMemberships(userId) {
|
|
|
45
45
|
select: {
|
|
46
46
|
id: true,
|
|
47
47
|
name: true,
|
|
48
|
+
description: true,
|
|
48
49
|
subdomain: true,
|
|
49
50
|
logoId: true,
|
|
51
|
+
logo: { select: { id: true, path: true, type: true } },
|
|
50
52
|
createdAt: true,
|
|
51
53
|
updatedAt: true,
|
|
52
54
|
},
|
|
@@ -82,13 +84,28 @@ export function getSchoolById(schoolId) {
|
|
|
82
84
|
select: {
|
|
83
85
|
id: true,
|
|
84
86
|
name: true,
|
|
87
|
+
description: true,
|
|
85
88
|
subdomain: true,
|
|
86
89
|
logoId: true,
|
|
90
|
+
logo: { select: { id: true, name: true, type: true, path: true } },
|
|
87
91
|
createdAt: true,
|
|
88
92
|
updatedAt: true,
|
|
89
93
|
},
|
|
90
94
|
});
|
|
91
95
|
}
|
|
96
|
+
export function updateSchoolRecord(schoolId, data) {
|
|
97
|
+
return prisma.school.update({
|
|
98
|
+
where: { id: schoolId },
|
|
99
|
+
data,
|
|
100
|
+
select: {
|
|
101
|
+
id: true,
|
|
102
|
+
name: true,
|
|
103
|
+
description: true,
|
|
104
|
+
subdomain: true,
|
|
105
|
+
logoId: true,
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
}
|
|
92
109
|
export function getSchoolOverview(schoolId) {
|
|
93
110
|
return prisma.school.findUnique({
|
|
94
111
|
where: { id: schoolId },
|
|
@@ -299,4 +316,4 @@ export function acceptSchoolInvite(inviteId, userId) {
|
|
|
299
316
|
});
|
|
300
317
|
}
|
|
301
318
|
//# sourceMappingURL=school.js.map
|
|
302
|
-
//# debugId=
|
|
319
|
+
//# debugId=bd2b1d00-966b-5892-8ade-ebc1e7ff80a1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"school.js","sources":["models/school.ts"],"sourceRoot":"/","sourcesContent":["/**\n * School model - school membership, invites, and admin lookups.\n */\nimport { SchoolMembershipRole } from \"@prisma/client\";\nimport { prisma } from \"../lib/prisma.js\";\n\nconst memberSelect = {\n id: true,\n role: true,\n status: true,\n createdAt: true,\n updatedAt: true,\n user: {\n select: {\n id: true,\n username: true,\n email: true,\n profile: {\n select: {\n displayName: true,\n profilePicture: true,\n profilePictureThumbnail: true,\n },\n },\n },\n },\n} as const;\n\nexport function findSchoolMembership(schoolId: string, userId: string) {\n return prisma.schoolMembership.findUnique({\n where: { schoolId_userId: { schoolId, userId } },\n });\n}\n\nexport function findActiveSchoolMembership(schoolId: string, userId: string) {\n return prisma.schoolMembership.findFirst({\n where: { schoolId, userId, status: \"ACTIVE\" },\n });\n}\n\nexport function findActiveSchoolAdminMembership(schoolId: string, userId: string) {\n return prisma.schoolMembership.findFirst({\n where: { schoolId, userId, role: \"ADMIN\", status: \"ACTIVE\" },\n });\n}\n\nexport function listUserSchoolMemberships(userId: string) {\n return prisma.schoolMembership.findMany({\n where: { userId, status: \"ACTIVE\" },\n include: {\n school: {\n select: {\n id: true,\n name: true,\n subdomain: true,\n logoId: true,\n createdAt: true,\n updatedAt: true,\n },\n },\n },\n orderBy: { createdAt: \"asc\" },\n });\n}\n\nexport function createSchoolWithAdmin(data: {\n name: string;\n subdomain?: string;\n logoId?: string;\n userId: string;\n}) {\n return prisma.school.create({\n data: {\n name: data.name,\n subdomain: data.subdomain,\n logoId: data.logoId,\n memberships: {\n create: {\n userId: data.userId,\n role: \"ADMIN\",\n status: \"ACTIVE\",\n },\n },\n },\n include: {\n memberships: {\n where: { userId: data.userId },\n },\n },\n });\n}\n\nexport function getSchoolById(schoolId: string) {\n return prisma.school.findUnique({\n where: { id: schoolId },\n select: {\n id: true,\n name: true,\n subdomain: true,\n logoId: true,\n createdAt: true,\n updatedAt: true,\n },\n });\n}\n\nexport function getSchoolOverview(schoolId: string) {\n return prisma.school.findUnique({\n where: { id: schoolId },\n select: {\n id: true,\n name: true,\n subdomain: true,\n _count: {\n select: {\n classes: true,\n memberships: { where: { status: \"ACTIVE\" } },\n invites: { where: { status: \"PENDING\" } },\n },\n },\n memberships: {\n where: { status: \"ACTIVE\" },\n select: { role: true },\n },\n classes: {\n orderBy: { name: \"asc\" },\n take: 5,\n select: {\n id: true,\n name: true,\n subject: true,\n section: true,\n color: true,\n _count: { select: { teachers: true, students: true } },\n },\n },\n invites: {\n where: { status: \"PENDING\" },\n orderBy: { createdAt: \"desc\" },\n take: 5,\n select: {\n id: true,\n email: true,\n role: true,\n expiresAt: true,\n createdAt: true,\n },\n },\n },\n });\n}\n\nexport function listSchoolClasses(schoolId: string) {\n return prisma.class.findMany({\n where: { schoolId },\n orderBy: [{ name: \"asc\" }, { section: \"asc\" }],\n include: {\n teachers: {\n select: {\n id: true,\n username: true,\n profile: {\n select: {\n displayName: true,\n profilePicture: true,\n profilePictureThumbnail: true,\n },\n },\n },\n },\n students: { select: { id: true } },\n _count: { select: { teachers: true, students: true, assignments: true } },\n },\n });\n}\n\nexport function listSchoolMembers(schoolId: string) {\n return prisma.schoolMembership.findMany({\n where: { schoolId },\n select: memberSelect,\n orderBy: [{ role: \"asc\" }, { createdAt: \"asc\" }],\n });\n}\n\nexport function countActiveAdmins(schoolId: string) {\n return prisma.schoolMembership.count({\n where: { schoolId, role: \"ADMIN\", status: \"ACTIVE\" },\n });\n}\n\nexport function upsertSchoolMembership(data: {\n schoolId: string;\n userId: string;\n role: SchoolMembershipRole;\n}) {\n return prisma.schoolMembership.upsert({\n where: {\n schoolId_userId: {\n schoolId: data.schoolId,\n userId: data.userId,\n },\n },\n update: {\n role: data.role,\n status: \"ACTIVE\",\n },\n create: {\n schoolId: data.schoolId,\n userId: data.userId,\n role: data.role,\n status: \"ACTIVE\",\n },\n });\n}\n\nexport function updateSchoolMembershipRole(\n schoolId: string,\n userId: string,\n role: SchoolMembershipRole\n) {\n return prisma.schoolMembership.update({\n where: { schoolId_userId: { schoolId, userId } },\n data: { role },\n });\n}\n\nexport function removeSchoolMembershipPreservingContent(schoolId: string, userId: string) {\n return prisma.$transaction(async (tx) => {\n const classes = await tx.class.findMany({\n where: { schoolId },\n select: { id: true },\n });\n const classIds = classes.map((cls) => ({ id: cls.id }));\n\n for (const classWhere of classIds) {\n await tx.class.update({\n where: classWhere,\n data: {\n teachers: { disconnect: { id: userId } },\n students: { disconnect: { id: userId } },\n },\n });\n }\n\n return tx.schoolMembership.delete({\n where: { schoolId_userId: { schoolId, userId } },\n });\n });\n}\n\nexport function createSchoolInvite(data: {\n schoolId: string;\n invitedById: string;\n email: string;\n role: SchoolMembershipRole;\n token: string;\n expiresAt: Date;\n}) {\n return prisma.schoolInvite.create({\n data,\n include: {\n school: { select: { id: true, name: true } },\n },\n });\n}\n\nexport function listSchoolInvites(schoolId: string) {\n return prisma.schoolInvite.findMany({\n where: { schoolId },\n orderBy: { createdAt: \"desc\" },\n select: {\n id: true,\n email: true,\n role: true,\n status: true,\n expiresAt: true,\n acceptedAt: true,\n revokedAt: true,\n createdAt: true,\n invitedBy: {\n select: {\n id: true,\n username: true,\n profile: { select: { displayName: true } },\n },\n },\n },\n });\n}\n\nexport function revokeSchoolInvite(inviteId: string, schoolId: string) {\n return prisma.schoolInvite.update({\n where: { id: inviteId, schoolId },\n data: {\n status: \"REVOKED\",\n revokedAt: new Date(),\n },\n });\n}\n\nexport function findPendingInviteByToken(token: string) {\n return prisma.schoolInvite.findUnique({\n where: { token },\n include: { school: { select: { id: true, name: true } } },\n });\n}\n\nexport function acceptSchoolInvite(inviteId: string, userId: string) {\n return prisma.$transaction(async (tx) => {\n const invite = await tx.schoolInvite.findUnique({\n where: { id: inviteId },\n });\n\n if (!invite) {\n throw new Error(\"Invite not found\");\n }\n\n const membership = await tx.schoolMembership.upsert({\n where: {\n schoolId_userId: {\n schoolId: invite.schoolId,\n userId,\n },\n },\n update: {\n role: invite.role,\n status: \"ACTIVE\",\n },\n create: {\n schoolId: invite.schoolId,\n userId,\n role: invite.role,\n status: \"ACTIVE\",\n },\n });\n\n await tx.schoolInvite.update({\n where: { id: inviteId },\n data: {\n status: \"ACCEPTED\",\n acceptedAt: new Date(),\n },\n });\n\n return membership;\n });\n}\n"],"names":[],"mappings":";;AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,WAAW,EAAE,IAAI;oBACjB,cAAc,EAAE,IAAI;oBACpB,uBAAuB,EAAE,IAAI;iBAC9B;aACF;SACF;KACF;CACO,CAAC;AAEX,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,MAAc;IACnE,OAAO,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACxC,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;KACjD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB,EAAE,MAAc;IACzE,OAAO,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACvC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,QAAgB,EAAE,MAAc;IAC9E,OAAO,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACvC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC7D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,OAAO,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACtC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;QACnC,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;iBAChB;aACF;SACF;QACD,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAKrC;IACC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,QAAQ;iBACjB;aACF;SACF;QACD,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;aAC/B;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAC9B,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;QACvB,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAChB;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAC9B,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;QACvB,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI;YACf,MAAM,EAAE;gBACN,MAAM,EAAE;oBACN,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;oBAC5C,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;iBAC1C;aACF;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACvB;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBACxB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;iBACvD;aACF;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC5B,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC9B,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;iBAChB;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3B,KAAK,EAAE,EAAE,QAAQ,EAAE;QACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9C,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACP,MAAM,EAAE;4BACN,WAAW,EAAE,IAAI;4BACjB,cAAc,EAAE,IAAI;4BACpB,uBAAuB,EAAE,IAAI;yBAC9B;qBACF;iBACF;aACF;YACD,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YAClC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;SAC1E;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACtC,KAAK,EAAE,EAAE,QAAQ,EAAE;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;KACjD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACnC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;KACrD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAItC;IACC,OAAO,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACpC,KAAK,EAAE;YACL,eAAe,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;SACjB;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;SACjB;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,MAAc,EACd,IAA0B;IAE1B,OAAO,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACpC,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;QAChD,IAAI,EAAE,EAAE,IAAI,EAAE;KACf,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,QAAgB,EAAE,MAAc;IACtF,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACtC,KAAK,EAAE,EAAE,QAAQ,EAAE;YACnB,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAExD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YAClC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE;oBACJ,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;oBACxC,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;iBACzC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChC,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;SACjD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAOlC;IACC,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAChC,IAAI;QACJ,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;SAC7C;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QAClC,KAAK,EAAE,EAAE,QAAQ,EAAE;QACnB,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,SAAS,EAAE;gBACT,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;iBAC3C;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;IACnE,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;QACjC,IAAI,EAAE;YACJ,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;QACpC,KAAK,EAAE,EAAE,KAAK,EAAE;QAChB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,MAAc;IACjE,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;YAC9C,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAClD,KAAK,EAAE;gBACL,eAAe,EAAE;oBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM;iBACP;aACF;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,QAAQ;aACjB;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,QAAQ;aACjB;SACF,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;YAC3B,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;YACvB,IAAI,EAAE;gBACJ,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,IAAI,IAAI,EAAE;aACvB;SACF,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC","debug_id":"856fe8aa-b02b-53db-83f8-972317deebbb"}
|
|
1
|
+
{"version":3,"file":"school.js","sources":["models/school.ts"],"sourceRoot":"/","sourcesContent":["/**\n * School model - school membership, invites, and admin lookups.\n */\nimport { SchoolMembershipRole } from \"@prisma/client\";\nimport { prisma } from \"../lib/prisma.js\";\n\nconst memberSelect = {\n id: true,\n role: true,\n status: true,\n createdAt: true,\n updatedAt: true,\n user: {\n select: {\n id: true,\n username: true,\n email: true,\n profile: {\n select: {\n displayName: true,\n profilePicture: true,\n profilePictureThumbnail: true,\n },\n },\n },\n },\n} as const;\n\nexport function findSchoolMembership(schoolId: string, userId: string) {\n return prisma.schoolMembership.findUnique({\n where: { schoolId_userId: { schoolId, userId } },\n });\n}\n\nexport function findActiveSchoolMembership(schoolId: string, userId: string) {\n return prisma.schoolMembership.findFirst({\n where: { schoolId, userId, status: \"ACTIVE\" },\n });\n}\n\nexport function findActiveSchoolAdminMembership(schoolId: string, userId: string) {\n return prisma.schoolMembership.findFirst({\n where: { schoolId, userId, role: \"ADMIN\", status: \"ACTIVE\" },\n });\n}\n\nexport function listUserSchoolMemberships(userId: string) {\n return prisma.schoolMembership.findMany({\n where: { userId, status: \"ACTIVE\" },\n include: {\n school: {\n select: {\n id: true,\n name: true,\n description: true,\n subdomain: true,\n logoId: true,\n logo: { select: { id: true, path: true, type: true } },\n createdAt: true,\n updatedAt: true,\n },\n },\n },\n orderBy: { createdAt: \"asc\" },\n });\n}\n\nexport function createSchoolWithAdmin(data: {\n name: string;\n subdomain?: string;\n logoId?: string;\n userId: string;\n}) {\n return prisma.school.create({\n data: {\n name: data.name,\n subdomain: data.subdomain,\n logoId: data.logoId,\n memberships: {\n create: {\n userId: data.userId,\n role: \"ADMIN\",\n status: \"ACTIVE\",\n },\n },\n },\n include: {\n memberships: {\n where: { userId: data.userId },\n },\n },\n });\n}\n\nexport function getSchoolById(schoolId: string) {\n return prisma.school.findUnique({\n where: { id: schoolId },\n select: {\n id: true,\n name: true,\n description: true,\n subdomain: true,\n logoId: true,\n logo: { select: { id: true, name: true, type: true, path: true } },\n createdAt: true,\n updatedAt: true,\n },\n });\n}\n\nexport function updateSchoolRecord(\n schoolId: string,\n data: {\n name?: string;\n description?: string | null;\n subdomain?: string | null;\n logoId?: string | null;\n }\n) {\n return prisma.school.update({\n where: { id: schoolId },\n data,\n select: {\n id: true,\n name: true,\n description: true,\n subdomain: true,\n logoId: true,\n },\n });\n}\n\nexport function getSchoolOverview(schoolId: string) {\n return prisma.school.findUnique({\n where: { id: schoolId },\n select: {\n id: true,\n name: true,\n subdomain: true,\n _count: {\n select: {\n classes: true,\n memberships: { where: { status: \"ACTIVE\" } },\n invites: { where: { status: \"PENDING\" } },\n },\n },\n memberships: {\n where: { status: \"ACTIVE\" },\n select: { role: true },\n },\n classes: {\n orderBy: { name: \"asc\" },\n take: 5,\n select: {\n id: true,\n name: true,\n subject: true,\n section: true,\n color: true,\n _count: { select: { teachers: true, students: true } },\n },\n },\n invites: {\n where: { status: \"PENDING\" },\n orderBy: { createdAt: \"desc\" },\n take: 5,\n select: {\n id: true,\n email: true,\n role: true,\n expiresAt: true,\n createdAt: true,\n },\n },\n },\n });\n}\n\nexport function listSchoolClasses(schoolId: string) {\n return prisma.class.findMany({\n where: { schoolId },\n orderBy: [{ name: \"asc\" }, { section: \"asc\" }],\n include: {\n teachers: {\n select: {\n id: true,\n username: true,\n profile: {\n select: {\n displayName: true,\n profilePicture: true,\n profilePictureThumbnail: true,\n },\n },\n },\n },\n students: { select: { id: true } },\n _count: { select: { teachers: true, students: true, assignments: true } },\n },\n });\n}\n\nexport function listSchoolMembers(schoolId: string) {\n return prisma.schoolMembership.findMany({\n where: { schoolId },\n select: memberSelect,\n orderBy: [{ role: \"asc\" }, { createdAt: \"asc\" }],\n });\n}\n\nexport function countActiveAdmins(schoolId: string) {\n return prisma.schoolMembership.count({\n where: { schoolId, role: \"ADMIN\", status: \"ACTIVE\" },\n });\n}\n\nexport function upsertSchoolMembership(data: {\n schoolId: string;\n userId: string;\n role: SchoolMembershipRole;\n}) {\n return prisma.schoolMembership.upsert({\n where: {\n schoolId_userId: {\n schoolId: data.schoolId,\n userId: data.userId,\n },\n },\n update: {\n role: data.role,\n status: \"ACTIVE\",\n },\n create: {\n schoolId: data.schoolId,\n userId: data.userId,\n role: data.role,\n status: \"ACTIVE\",\n },\n });\n}\n\nexport function updateSchoolMembershipRole(\n schoolId: string,\n userId: string,\n role: SchoolMembershipRole\n) {\n return prisma.schoolMembership.update({\n where: { schoolId_userId: { schoolId, userId } },\n data: { role },\n });\n}\n\nexport function removeSchoolMembershipPreservingContent(schoolId: string, userId: string) {\n return prisma.$transaction(async (tx) => {\n const classes = await tx.class.findMany({\n where: { schoolId },\n select: { id: true },\n });\n const classIds = classes.map((cls) => ({ id: cls.id }));\n\n for (const classWhere of classIds) {\n await tx.class.update({\n where: classWhere,\n data: {\n teachers: { disconnect: { id: userId } },\n students: { disconnect: { id: userId } },\n },\n });\n }\n\n return tx.schoolMembership.delete({\n where: { schoolId_userId: { schoolId, userId } },\n });\n });\n}\n\nexport function createSchoolInvite(data: {\n schoolId: string;\n invitedById: string;\n email: string;\n role: SchoolMembershipRole;\n token: string;\n expiresAt: Date;\n}) {\n return prisma.schoolInvite.create({\n data,\n include: {\n school: { select: { id: true, name: true } },\n },\n });\n}\n\nexport function listSchoolInvites(schoolId: string) {\n return prisma.schoolInvite.findMany({\n where: { schoolId },\n orderBy: { createdAt: \"desc\" },\n select: {\n id: true,\n email: true,\n role: true,\n status: true,\n expiresAt: true,\n acceptedAt: true,\n revokedAt: true,\n createdAt: true,\n invitedBy: {\n select: {\n id: true,\n username: true,\n profile: { select: { displayName: true } },\n },\n },\n },\n });\n}\n\nexport function revokeSchoolInvite(inviteId: string, schoolId: string) {\n return prisma.schoolInvite.update({\n where: { id: inviteId, schoolId },\n data: {\n status: \"REVOKED\",\n revokedAt: new Date(),\n },\n });\n}\n\nexport function findPendingInviteByToken(token: string) {\n return prisma.schoolInvite.findUnique({\n where: { token },\n include: { school: { select: { id: true, name: true } } },\n });\n}\n\nexport function acceptSchoolInvite(inviteId: string, userId: string) {\n return prisma.$transaction(async (tx) => {\n const invite = await tx.schoolInvite.findUnique({\n where: { id: inviteId },\n });\n\n if (!invite) {\n throw new Error(\"Invite not found\");\n }\n\n const membership = await tx.schoolMembership.upsert({\n where: {\n schoolId_userId: {\n schoolId: invite.schoolId,\n userId,\n },\n },\n update: {\n role: invite.role,\n status: \"ACTIVE\",\n },\n create: {\n schoolId: invite.schoolId,\n userId,\n role: invite.role,\n status: \"ACTIVE\",\n },\n });\n\n await tx.schoolInvite.update({\n where: { id: inviteId },\n data: {\n status: \"ACCEPTED\",\n acceptedAt: new Date(),\n },\n });\n\n return membership;\n });\n}\n"],"names":[],"mappings":"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","debug_id":"bd2b1d00-966b-5892-8ade-ebc1e7ff80a1"}
|
package/dist/models/section.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export declare function findClassWithTeacher(classId: string, teacherId: string)
|
|
|
21
21
|
color: string | null;
|
|
22
22
|
section: string;
|
|
23
23
|
syllabus: string | null;
|
|
24
|
+
departmentId: string | null;
|
|
24
25
|
} | null, null, import("@prisma/client/runtime/library.js").DefaultArgs, {
|
|
25
26
|
datasources: {
|
|
26
27
|
db: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section.d.ts","sourceRoot":"/","sources":["models/section.ts"],"names":[],"mappings":"AAMA,8BAA8B;AAC9B,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;GAIzC;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"section.d.ts","sourceRoot":"/","sources":["models/section.ts"],"names":[],"mappings":"AAMA,8BAA8B;AAC9B,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;GAIzC;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;GAOtE;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;;GAUA;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM;;;KAKpD;AAED,yDAAyD;AACzD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM;;;KAKvD;AAED,4BAA4B;AAC5B,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;GAK3D;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK9D;AAED,qCAAqC;AACrC,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;GAMvC;AAED,wBAAwB;AACxB,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;GAI3C;AAED,0CAA0C;AAC1C,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;GAKzE"}
|