@studious-lms/server 1.4.6 → 1.4.9
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/.github/workflows/npm.yml +28 -0
- package/dist/models/access.d.ts +112 -0
- package/dist/models/access.d.ts.map +1 -0
- package/dist/models/access.js +49 -0
- package/dist/models/access.js.map +1 -0
- package/dist/models/announcement.d.ts +17 -2
- package/dist/models/announcement.d.ts.map +1 -1
- package/dist/models/announcement.js +21 -4
- package/dist/models/announcement.js.map +1 -1
- package/dist/models/assignment.d.ts +69 -37
- package/dist/models/assignment.d.ts.map +1 -1
- package/dist/models/assignment.js +124 -15
- package/dist/models/assignment.js.map +1 -1
- package/dist/models/attendance.d.ts +1 -1
- package/dist/models/attendance.d.ts.map +1 -1
- package/dist/models/attendance.js +6 -5
- package/dist/models/attendance.js.map +1 -1
- package/dist/models/auth.d.ts +5 -5
- package/dist/models/auth.d.ts.map +1 -1
- package/dist/models/auth.js +7 -11
- package/dist/models/auth.js.map +1 -1
- package/dist/models/class.d.ts +26 -26
- package/dist/models/class.d.ts.map +1 -1
- package/dist/models/class.js +7 -11
- package/dist/models/class.js.map +1 -1
- package/dist/models/comment.d.ts +134 -70
- package/dist/models/comment.d.ts.map +1 -1
- package/dist/models/comment.js +30 -42
- package/dist/models/comment.js.map +1 -1
- package/dist/models/conversation.d.ts +7 -7
- package/dist/models/event.d.ts +52 -3
- package/dist/models/event.d.ts.map +1 -1
- package/dist/models/event.js +56 -6
- package/dist/models/event.js.map +1 -1
- package/dist/models/file.d.ts +178 -103
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/file.js +54 -14
- package/dist/models/file.js.map +1 -1
- package/dist/models/folder.d.ts +22 -22
- package/dist/models/folder.d.ts.map +1 -1
- package/dist/models/folder.js +5 -4
- package/dist/models/folder.js.map +1 -1
- package/dist/models/labChat.d.ts +20 -20
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/labChat.js +8 -10
- package/dist/models/labChat.js.map +1 -1
- package/dist/models/marketing.d.ts +1 -1
- package/dist/models/message.d.ts +6 -6
- package/dist/models/newtonChat.d.ts +5 -5
- package/dist/models/school.d.ts +361 -0
- package/dist/models/school.d.ts.map +1 -0
- package/dist/models/school.js +314 -0
- package/dist/models/school.js.map +1 -0
- package/dist/models/section.d.ts +1 -1
- package/dist/models/section.d.ts.map +1 -1
- package/dist/models/section.js +5 -4
- package/dist/models/section.js.map +1 -1
- package/dist/models/user.d.ts +4 -4
- package/dist/models/worksheet.d.ts +163 -141
- package/dist/models/worksheet.d.ts.map +1 -1
- package/dist/models/worksheet.js +42 -17
- package/dist/models/worksheet.js.map +1 -1
- package/dist/pipelines/gradeWorksheet.d.ts +2 -2
- package/dist/pipelines/pdfToWorksheet.d.ts +1 -1
- package/dist/routers/_app.d.ts +1271 -327
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +4 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/announcement.d.ts +5 -5
- package/dist/routers/announcement.d.ts.map +1 -1
- package/dist/routers/announcement.js +25 -5
- package/dist/routers/announcement.js.map +1 -1
- package/dist/routers/assignment.d.ts +79 -44
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/assignment.js +32 -12
- package/dist/routers/assignment.js.map +1 -1
- package/dist/routers/class.d.ts +40 -20
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +3 -2
- package/dist/routers/class.js.map +1 -1
- package/dist/routers/comment.d.ts +5 -5
- package/dist/routers/conversation.d.ts +6 -6
- package/dist/routers/event.d.ts +21 -2
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/file.d.ts +2 -2
- package/dist/routers/folder.d.ts +24 -24
- package/dist/routers/labChat.d.ts +7 -7
- package/dist/routers/school.d.ts +384 -0
- package/dist/routers/school.d.ts.map +1 -0
- package/dist/routers/school.js +79 -0
- package/dist/routers/school.js.map +1 -0
- package/dist/routers/search.d.ts +1 -1
- package/dist/routers/worksheet.d.ts +36 -20
- package/dist/routers/worksheet.d.ts.map +1 -1
- package/dist/routers/worksheet.js +10 -3
- package/dist/routers/worksheet.js.map +1 -1
- package/dist/services/announcement.d.ts.map +1 -1
- package/dist/services/announcement.js +10 -6
- package/dist/services/announcement.js.map +1 -1
- package/dist/services/assignment.d.ts +66 -36
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/assignment.js +37 -3
- package/dist/services/assignment.js.map +1 -1
- package/dist/services/class.d.ts +39 -19
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/class.js +52 -15
- package/dist/services/class.js.map +1 -1
- package/dist/services/comment.d.ts +5 -5
- package/dist/services/comment.d.ts.map +1 -1
- package/dist/services/comment.js +8 -3
- package/dist/services/comment.js.map +1 -1
- package/dist/services/conversation.d.ts +6 -6
- package/dist/services/event.d.ts +21 -2
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/event.js +11 -7
- package/dist/services/event.js.map +1 -1
- package/dist/services/file.d.ts +2 -2
- package/dist/services/file.d.ts.map +1 -1
- package/dist/services/file.js +17 -8
- package/dist/services/file.js.map +1 -1
- package/dist/services/folder.d.ts +24 -24
- package/dist/services/labChat.d.ts +7 -7
- package/dist/services/school.d.ts +299 -0
- package/dist/services/school.d.ts.map +1 -0
- package/dist/services/school.js +225 -0
- package/dist/services/school.js.map +1 -0
- package/dist/services/worksheet.d.ts +31 -20
- package/dist/services/worksheet.d.ts.map +1 -1
- package/dist/services/worksheet.js +37 -3
- package/dist/services/worksheet.js.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20260504071500_school_memberships/migration.sql +81 -0
- package/prisma/schema.prisma +66 -2
- package/src/models/access.ts +48 -0
- package/src/models/announcement.ts +19 -2
- package/src/models/assignment.ts +149 -13
- package/src/models/attendance.ts +4 -3
- package/src/models/auth.ts +8 -9
- package/src/models/class.ts +8 -9
- package/src/models/comment.ts +29 -40
- package/src/models/event.ts +54 -4
- package/src/models/file.ts +53 -12
- package/src/models/folder.ts +3 -2
- package/src/models/labChat.ts +9 -8
- package/src/models/school.ts +361 -0
- package/src/models/section.ts +3 -2
- package/src/models/worksheet.ts +61 -12
- package/src/routers/_app.ts +2 -0
- package/src/routers/announcement.ts +30 -4
- package/src/routers/assignment.ts +46 -9
- package/src/routers/class.ts +1 -0
- package/src/routers/school.ts +122 -0
- package/src/routers/worksheet.ts +18 -0
- package/src/services/announcement.ts +12 -4
- package/src/services/assignment.ts +47 -1
- package/src/services/class.ts +61 -14
- package/src/services/comment.ts +10 -1
- package/src/services/event.ts +23 -6
- package/src/services/file.ts +20 -6
- package/src/services/school.ts +308 -0
- package/src/services/worksheet.ts +46 -0
- package/dist/lib/notificationHandler.d.ts +0 -25
- package/dist/lib/notificationHandler.d.ts.map +0 -1
- package/dist/lib/notificationHandler.js +0 -32
- package/dist/lib/notificationHandler.js.map +0 -1
- package/dist/server/pipelines/aiLabChat.d.ts +0 -21
- package/dist/server/pipelines/aiLabChat.d.ts.map +0 -1
- package/dist/server/pipelines/aiLabChat.js +0 -456
- package/dist/server/pipelines/aiLabChat.js.map +0 -1
- package/dist/server/pipelines/aiNewtonChat.d.ts +0 -30
- package/dist/server/pipelines/aiNewtonChat.d.ts.map +0 -1
- package/dist/server/pipelines/aiNewtonChat.js +0 -285
- package/dist/server/pipelines/aiNewtonChat.js.map +0 -1
- package/dist/server/pipelines/gradeWorksheet.d.ts +0 -30
- package/dist/server/pipelines/gradeWorksheet.d.ts.map +0 -1
- package/dist/server/pipelines/gradeWorksheet.js +0 -248
- package/dist/server/pipelines/gradeWorksheet.js.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Publish Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
id-token: write # Required for OIDC / npm provenance
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
env:
|
|
16
|
+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v6
|
|
19
|
+
|
|
20
|
+
- uses: actions/setup-node@v6
|
|
21
|
+
with:
|
|
22
|
+
node-version: '24'
|
|
23
|
+
registry-url: 'https://registry.npmjs.org'
|
|
24
|
+
package-manager-cache: false # never use caching in release builds
|
|
25
|
+
|
|
26
|
+
- run: npm ci
|
|
27
|
+
- run: npm run build --if-present
|
|
28
|
+
- run: npm publish --access public
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared class access filters.
|
|
3
|
+
*/
|
|
4
|
+
export declare const schoolAdminForClassWhere: (userId: string) => {
|
|
5
|
+
OR: ({
|
|
6
|
+
school: {
|
|
7
|
+
is: {
|
|
8
|
+
memberships: {
|
|
9
|
+
some: {
|
|
10
|
+
userId: string;
|
|
11
|
+
role: "ADMIN";
|
|
12
|
+
status: "ACTIVE";
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
users?: undefined;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
} | {
|
|
19
|
+
school: {
|
|
20
|
+
is: {
|
|
21
|
+
users: {
|
|
22
|
+
some: {
|
|
23
|
+
id: string;
|
|
24
|
+
role: "ADMIN";
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
memberships?: undefined;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
})[];
|
|
31
|
+
};
|
|
32
|
+
export declare const classTeacherOrSchoolAdminWhere: (userId: string) => {
|
|
33
|
+
OR: ({
|
|
34
|
+
OR: ({
|
|
35
|
+
school: {
|
|
36
|
+
is: {
|
|
37
|
+
memberships: {
|
|
38
|
+
some: {
|
|
39
|
+
userId: string;
|
|
40
|
+
role: "ADMIN";
|
|
41
|
+
status: "ACTIVE";
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
users?: undefined;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
} | {
|
|
48
|
+
school: {
|
|
49
|
+
is: {
|
|
50
|
+
users: {
|
|
51
|
+
some: {
|
|
52
|
+
id: string;
|
|
53
|
+
role: "ADMIN";
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
memberships?: undefined;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
})[];
|
|
60
|
+
} | {
|
|
61
|
+
teachers: {
|
|
62
|
+
some: {
|
|
63
|
+
id: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
})[];
|
|
67
|
+
};
|
|
68
|
+
export declare const classMemberOrSchoolAdminWhere: (userId: string) => {
|
|
69
|
+
OR: ({
|
|
70
|
+
OR: ({
|
|
71
|
+
school: {
|
|
72
|
+
is: {
|
|
73
|
+
memberships: {
|
|
74
|
+
some: {
|
|
75
|
+
userId: string;
|
|
76
|
+
role: "ADMIN";
|
|
77
|
+
status: "ACTIVE";
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
users?: undefined;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
} | {
|
|
84
|
+
school: {
|
|
85
|
+
is: {
|
|
86
|
+
users: {
|
|
87
|
+
some: {
|
|
88
|
+
id: string;
|
|
89
|
+
role: "ADMIN";
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
memberships?: undefined;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
})[];
|
|
96
|
+
} | {
|
|
97
|
+
teachers: {
|
|
98
|
+
some: {
|
|
99
|
+
id: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
students?: undefined;
|
|
103
|
+
} | {
|
|
104
|
+
students: {
|
|
105
|
+
some: {
|
|
106
|
+
id: string;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
teachers?: undefined;
|
|
110
|
+
})[];
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"/","sources":["models/access.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrD,CAAC;AAEH,eAAO,MAAM,8BAA8B,GAAI,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3D,CAAC;AAEH,eAAO,MAAM,6BAA6B,GAAI,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM1D,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared class access filters.
|
|
3
|
+
*/
|
|
4
|
+
|
|
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]="7b5148ef-61c8-512a-bcea-eacfc9066ef7")}catch(e){}}();
|
|
6
|
+
export const schoolAdminForClassWhere = (userId) => ({
|
|
7
|
+
OR: [
|
|
8
|
+
{
|
|
9
|
+
school: {
|
|
10
|
+
is: {
|
|
11
|
+
memberships: {
|
|
12
|
+
some: {
|
|
13
|
+
userId,
|
|
14
|
+
role: "ADMIN",
|
|
15
|
+
status: "ACTIVE",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
school: {
|
|
23
|
+
is: {
|
|
24
|
+
users: {
|
|
25
|
+
some: {
|
|
26
|
+
id: userId,
|
|
27
|
+
role: "ADMIN",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
});
|
|
35
|
+
export const classTeacherOrSchoolAdminWhere = (userId) => ({
|
|
36
|
+
OR: [
|
|
37
|
+
{ teachers: { some: { id: userId } } },
|
|
38
|
+
schoolAdminForClassWhere(userId),
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
export const classMemberOrSchoolAdminWhere = (userId) => ({
|
|
42
|
+
OR: [
|
|
43
|
+
{ teachers: { some: { id: userId } } },
|
|
44
|
+
{ students: { some: { id: userId } } },
|
|
45
|
+
schoolAdminForClassWhere(userId),
|
|
46
|
+
],
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=access.js.map
|
|
49
|
+
//# debugId=7b5148ef-61c8-512a-bcea-eacfc9066ef7
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.js","sources":["models/access.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Shared class access filters.\n */\n\nexport const schoolAdminForClassWhere = (userId: string) => ({\n OR: [\n {\n school: {\n is: {\n memberships: {\n some: {\n userId,\n role: \"ADMIN\" as const,\n status: \"ACTIVE\" as const,\n },\n },\n },\n },\n },\n {\n school: {\n is: {\n users: {\n some: {\n id: userId,\n role: \"ADMIN\" as const,\n },\n },\n },\n },\n },\n ],\n});\n\nexport const classTeacherOrSchoolAdminWhere = (userId: string) => ({\n OR: [\n { teachers: { some: { id: userId } } },\n schoolAdminForClassWhere(userId),\n ],\n});\n\nexport const classMemberOrSchoolAdminWhere = (userId: string) => ({\n OR: [\n { teachers: { some: { id: userId } } },\n { students: { some: { id: userId } } },\n schoolAdminForClassWhere(userId),\n ],\n});\n"],"names":[],"mappings":"AAAA;;GAEG;;;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3D,EAAE,EAAE;QACF;YACE,MAAM,EAAE;gBACN,EAAE,EAAE;oBACF,WAAW,EAAE;wBACX,IAAI,EAAE;4BACJ,MAAM;4BACN,IAAI,EAAE,OAAgB;4BACtB,MAAM,EAAE,QAAiB;yBAC1B;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE;gBACN,EAAE,EAAE;oBACF,KAAK,EAAE;wBACL,IAAI,EAAE;4BACJ,EAAE,EAAE,MAAM;4BACV,IAAI,EAAE,OAAgB;yBACvB;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACjE,EAAE,EAAE;QACF,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,wBAAwB,CAAC,MAAM,CAAC;KACjC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAChE,EAAE,EAAE;QACF,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,wBAAwB,CAAC,MAAM,CAAC;KACjC;CACF,CAAC,CAAC","debug_id":"7b5148ef-61c8-512a-bcea-eacfc9066ef7"}
|
|
@@ -31,10 +31,10 @@ export declare const announcementSelect: {
|
|
|
31
31
|
/** @returns Announcements for a class. */
|
|
32
32
|
export declare function findAnnouncementsByClassId(classId: string): import(".prisma/client").Prisma.PrismaPromise<{
|
|
33
33
|
id: string;
|
|
34
|
+
createdAt: Date;
|
|
34
35
|
_count: {
|
|
35
36
|
comments: number;
|
|
36
37
|
};
|
|
37
|
-
createdAt: Date;
|
|
38
38
|
modifiedAt: Date | null;
|
|
39
39
|
remarks: string;
|
|
40
40
|
teacher: {
|
|
@@ -87,9 +87,24 @@ export declare function findAnnouncementByIdAndClass(id: string, classId: string
|
|
|
87
87
|
};
|
|
88
88
|
};
|
|
89
89
|
}>;
|
|
90
|
-
/** @returns Announcement by ID with class and
|
|
90
|
+
/** @returns Announcement by ID with class teachers and school admins. */
|
|
91
91
|
export declare function findAnnouncementWithClass(id: string): import(".prisma/client").Prisma.Prisma__AnnouncementClient<({
|
|
92
92
|
class: {
|
|
93
|
+
school: ({
|
|
94
|
+
users: {
|
|
95
|
+
id: string;
|
|
96
|
+
}[];
|
|
97
|
+
memberships: {
|
|
98
|
+
userId: string;
|
|
99
|
+
}[];
|
|
100
|
+
} & {
|
|
101
|
+
name: string;
|
|
102
|
+
id: string;
|
|
103
|
+
logoId: string | null;
|
|
104
|
+
subdomain: string | null;
|
|
105
|
+
createdAt: Date;
|
|
106
|
+
updatedAt: Date;
|
|
107
|
+
}) | null;
|
|
93
108
|
teachers: {
|
|
94
109
|
id: string;
|
|
95
110
|
username: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement.d.ts","sourceRoot":"/","sources":["models/announcement.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9B,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;KAWzD;AAED,6CAA6C;AAC7C,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKvE;AAED,
|
|
1
|
+
{"version":3,"file":"announcement.d.ts","sourceRoot":"/","sources":["models/announcement.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9B,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;KAWzD;AAED,6CAA6C;AAC7C,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKvE;AAED,yEAAyE;AACzE,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCnD;AAED,8BAA8B;AAC9B,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASA;AAED,uCAAuC;AACvC,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IACJ,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE;YAAE,EAAE,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;CACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAcF;AAED,mCAAmC;AACnC,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAMxE;AAED,8BAA8B;AAC9B,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;GAI5C"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Announcement model – announcements, attachments, comments.
|
|
3
3
|
*/
|
|
4
4
|
|
|
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]="
|
|
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]="fff848bf-ce06-59fe-83ea-7a9d6e208421")}catch(e){}}();
|
|
6
6
|
import { prisma } from "../lib/prisma.js";
|
|
7
7
|
export const announcementSelect = {
|
|
8
8
|
id: true,
|
|
@@ -54,13 +54,30 @@ export function findAnnouncementByIdAndClass(id, classId) {
|
|
|
54
54
|
select: announcementSelect,
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
/** @returns Announcement by ID with class and
|
|
57
|
+
/** @returns Announcement by ID with class teachers and school admins. */
|
|
58
58
|
export function findAnnouncementWithClass(id) {
|
|
59
59
|
return prisma.announcement.findUnique({
|
|
60
60
|
where: { id },
|
|
61
61
|
include: {
|
|
62
62
|
class: {
|
|
63
|
-
include: {
|
|
63
|
+
include: {
|
|
64
|
+
teachers: true,
|
|
65
|
+
school: {
|
|
66
|
+
include: {
|
|
67
|
+
users: {
|
|
68
|
+
where: { role: "ADMIN" },
|
|
69
|
+
select: { id: true },
|
|
70
|
+
},
|
|
71
|
+
memberships: {
|
|
72
|
+
where: {
|
|
73
|
+
role: "ADMIN",
|
|
74
|
+
status: "ACTIVE",
|
|
75
|
+
},
|
|
76
|
+
select: { userId: true },
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
64
81
|
},
|
|
65
82
|
attachments: {
|
|
66
83
|
select: {
|
|
@@ -117,4 +134,4 @@ export function deleteAnnouncement(id) {
|
|
|
117
134
|
});
|
|
118
135
|
}
|
|
119
136
|
//# sourceMappingURL=announcement.js.map
|
|
120
|
-
//# debugId=
|
|
137
|
+
//# debugId=fff848bf-ce06-59fe-83ea-7a9d6e208421
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement.js","sources":["models/announcement.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Announcement model – announcements, attachments, comments.\n */\nimport { prisma } from \"../lib/prisma.js\";\n\nexport const announcementSelect = {\n id: true,\n teacher: {\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 remarks: true,\n createdAt: true,\n modifiedAt: true,\n attachments: {\n select: {\n id: true,\n name: true,\n type: true,\n size: true,\n path: true,\n uploadedAt: true,\n thumbnailId: true,\n },\n },\n};\n\n/** @returns Announcements for a class. */\nexport function findAnnouncementsByClassId(classId: string) {\n return prisma.announcement.findMany({\n where: { classId },\n select: {\n ...announcementSelect,\n _count: {\n select: { comments: true },\n },\n },\n orderBy: { createdAt: \"desc\" },\n });\n}\n\n/** @returns Announcement by ID and class. */\nexport function findAnnouncementByIdAndClass(id: string, classId: string) {\n return prisma.announcement.findFirst({\n where: { id, classId },\n select: announcementSelect,\n });\n}\n\n/** @returns Announcement by ID with class and
|
|
1
|
+
{"version":3,"file":"announcement.js","sources":["models/announcement.ts"],"sourceRoot":"/","sourcesContent":["/**\n * Announcement model – announcements, attachments, comments.\n */\nimport { prisma } from \"../lib/prisma.js\";\n\nexport const announcementSelect = {\n id: true,\n teacher: {\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 remarks: true,\n createdAt: true,\n modifiedAt: true,\n attachments: {\n select: {\n id: true,\n name: true,\n type: true,\n size: true,\n path: true,\n uploadedAt: true,\n thumbnailId: true,\n },\n },\n};\n\n/** @returns Announcements for a class. */\nexport function findAnnouncementsByClassId(classId: string) {\n return prisma.announcement.findMany({\n where: { classId },\n select: {\n ...announcementSelect,\n _count: {\n select: { comments: true },\n },\n },\n orderBy: { createdAt: \"desc\" },\n });\n}\n\n/** @returns Announcement by ID and class. */\nexport function findAnnouncementByIdAndClass(id: string, classId: string) {\n return prisma.announcement.findFirst({\n where: { id, classId },\n select: announcementSelect,\n });\n}\n\n/** @returns Announcement by ID with class teachers and school admins. */\nexport function findAnnouncementWithClass(id: string) {\n return prisma.announcement.findUnique({\n where: { id },\n include: {\n class: {\n include: {\n teachers: true,\n school: {\n include: {\n users: {\n where: { role: \"ADMIN\" as const },\n select: { id: true },\n },\n memberships: {\n where: {\n role: \"ADMIN\" as const,\n status: \"ACTIVE\" as const,\n },\n select: { userId: true },\n },\n },\n },\n },\n },\n attachments: {\n select: {\n id: true,\n name: true,\n type: true,\n path: true,\n size: true,\n uploadStatus: true,\n thumbnail: { select: { path: true } },\n },\n },\n },\n });\n}\n\n/** Create an announcement. */\nexport function createAnnouncement(data: {\n remarks: string;\n teacherId: string;\n classId: string;\n}) {\n return prisma.announcement.create({\n data: {\n remarks: data.remarks,\n teacher: { connect: { id: data.teacherId } },\n class: { connect: { id: data.classId } },\n },\n select: announcementSelect,\n });\n}\n\n/** Update announcement attachments. */\nexport function updateAnnouncementAttachments(\n id: string,\n data: {\n connect?: { id: string }[];\n deleteMany?: { id: { in: string[] } };\n }\n) {\n return prisma.announcement.update({\n where: { id },\n data: {\n ...(data.connect?.length && {\n attachments: { connect: data.connect },\n }),\n ...(data.deleteMany && {\n attachments: { deleteMany: data.deleteMany },\n }),\n },\n select: announcementSelect,\n });\n}\n\n/** Update announcement remarks. */\nexport function updateAnnouncement(id: string, data: { remarks?: string }) {\n return prisma.announcement.update({\n where: { id },\n data,\n select: announcementSelect,\n });\n}\n\n/** Delete an announcement. */\nexport function deleteAnnouncement(id: string) {\n return prisma.announcement.delete({\n where: { id },\n });\n}\n"],"names":[],"mappings":"AAAA;;GAEG;;;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,IAAI;IACR,OAAO,EAAE;QACP,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,WAAW,EAAE,IAAI;oBACjB,cAAc,EAAE,IAAI;oBACpB,uBAAuB,EAAE,IAAI;iBAC9B;aACF;SACF;KACF;IACD,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE;QACX,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;SAClB;KACF;CACF,CAAC;AAEF,0CAA0C;AAC1C,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QAClC,KAAK,EAAE,EAAE,OAAO,EAAE;QAClB,MAAM,EAAE;YACN,GAAG,kBAAkB;YACrB,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC3B;SACF;QACD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,4BAA4B,CAAC,EAAU,EAAE,OAAe;IACtE,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QACnC,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;QACtB,MAAM,EAAE,kBAAkB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,yBAAyB,CAAC,EAAU;IAClD,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;QACpC,KAAK,EAAE,EAAE,EAAE,EAAE;QACb,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,OAAO,EAAE;oBACP,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE;wBACN,OAAO,EAAE;4BACP,KAAK,EAAE;gCACL,KAAK,EAAE,EAAE,IAAI,EAAE,OAAgB,EAAE;gCACjC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;6BACrB;4BACD,WAAW,EAAE;gCACX,KAAK,EAAE;oCACL,IAAI,EAAE,OAAgB;oCACtB,MAAM,EAAE,QAAiB;iCAC1B;gCACD,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;6BACzB;yBACF;qBACF;iBACF;aACF;YACD,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,IAAI;oBACV,YAAY,EAAE,IAAI;oBAClB,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;iBACtC;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,kBAAkB,CAAC,IAIlC;IACC,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE;YAC5C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;SACzC;QACD,MAAM,EAAE,kBAAkB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,6BAA6B,CAC3C,EAAU,EACV,IAGC;IAED,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,EAAE,EAAE,EAAE;QACb,IAAI,EAAE;YACJ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI;gBAC1B,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;aACvC,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI;gBACrB,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;aAC7C,CAAC;SACH;QACD,MAAM,EAAE,kBAAkB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,kBAAkB,CAAC,EAAU,EAAE,IAA0B;IACvE,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,EAAE,EAAE,EAAE;QACb,IAAI;QACJ,MAAM,EAAE,kBAAkB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,EAAE,EAAE,EAAE;KACd,CAAC,CAAC;AACL,CAAC","debug_id":"fff848bf-ce06-59fe-83ea-7a9d6e208421"}
|
|
@@ -33,12 +33,6 @@ export declare function findAssignmentById(id: string): import(".prisma/client")
|
|
|
33
33
|
}>;
|
|
34
34
|
/** @returns Assignment with full details for get. */
|
|
35
35
|
export declare function findAssignmentWithDetails(id: string): import(".prisma/client").Prisma.Prisma__AssignmentClient<({
|
|
36
|
-
submissions: {
|
|
37
|
-
student: {
|
|
38
|
-
id: string;
|
|
39
|
-
username: string;
|
|
40
|
-
};
|
|
41
|
-
}[];
|
|
42
36
|
class: {
|
|
43
37
|
name: string;
|
|
44
38
|
id: string;
|
|
@@ -47,6 +41,12 @@ export declare function findAssignmentWithDetails(id: string): import(".prisma/c
|
|
|
47
41
|
name: string;
|
|
48
42
|
id: string;
|
|
49
43
|
} | null;
|
|
44
|
+
submissions: {
|
|
45
|
+
student: {
|
|
46
|
+
id: string;
|
|
47
|
+
username: string;
|
|
48
|
+
};
|
|
49
|
+
}[];
|
|
50
50
|
markScheme: {
|
|
51
51
|
id: string;
|
|
52
52
|
structured: string;
|
|
@@ -122,8 +122,8 @@ export declare function findAssignmentForDelete(id: string, teacherId: string):
|
|
|
122
122
|
type: string;
|
|
123
123
|
name: string;
|
|
124
124
|
id: string;
|
|
125
|
-
size: number | null;
|
|
126
125
|
userId: string | null;
|
|
126
|
+
size: number | null;
|
|
127
127
|
uploadedAt: Date | null;
|
|
128
128
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
129
129
|
uploadUrl: string | null;
|
|
@@ -150,8 +150,8 @@ export declare function findAssignmentForDelete(id: string, teacherId: string):
|
|
|
150
150
|
type: string;
|
|
151
151
|
name: string;
|
|
152
152
|
id: string;
|
|
153
|
-
size: number | null;
|
|
154
153
|
userId: string | null;
|
|
154
|
+
size: number | null;
|
|
155
155
|
uploadedAt: Date | null;
|
|
156
156
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
157
157
|
uploadUrl: string | null;
|
|
@@ -179,8 +179,8 @@ export declare function findAssignmentForDelete(id: string, teacherId: string):
|
|
|
179
179
|
type: string;
|
|
180
180
|
name: string;
|
|
181
181
|
id: string;
|
|
182
|
-
size: number | null;
|
|
183
182
|
userId: string | null;
|
|
183
|
+
size: number | null;
|
|
184
184
|
uploadedAt: Date | null;
|
|
185
185
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
186
186
|
uploadUrl: string | null;
|
|
@@ -207,8 +207,8 @@ export declare function findAssignmentForDelete(id: string, teacherId: string):
|
|
|
207
207
|
type: string;
|
|
208
208
|
name: string;
|
|
209
209
|
id: string;
|
|
210
|
-
size: number | null;
|
|
211
210
|
userId: string | null;
|
|
211
|
+
size: number | null;
|
|
212
212
|
uploadedAt: Date | null;
|
|
213
213
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
214
214
|
uploadUrl: string | null;
|
|
@@ -232,8 +232,8 @@ export declare function findAssignmentForDelete(id: string, teacherId: string):
|
|
|
232
232
|
})[];
|
|
233
233
|
} & {
|
|
234
234
|
id: string;
|
|
235
|
-
assignmentId: string;
|
|
236
235
|
createdAt: Date;
|
|
236
|
+
assignmentId: string;
|
|
237
237
|
modifiedAt: Date;
|
|
238
238
|
studentId: string;
|
|
239
239
|
extendedResponse: string | null;
|
|
@@ -253,8 +253,8 @@ export declare function findAssignmentForDelete(id: string, teacherId: string):
|
|
|
253
253
|
type: string;
|
|
254
254
|
name: string;
|
|
255
255
|
id: string;
|
|
256
|
-
size: number | null;
|
|
257
256
|
userId: string | null;
|
|
257
|
+
size: number | null;
|
|
258
258
|
uploadedAt: Date | null;
|
|
259
259
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
260
260
|
uploadUrl: string | null;
|
|
@@ -281,8 +281,8 @@ export declare function findAssignmentForDelete(id: string, teacherId: string):
|
|
|
281
281
|
type: string;
|
|
282
282
|
name: string;
|
|
283
283
|
id: string;
|
|
284
|
-
size: number | null;
|
|
285
284
|
userId: string | null;
|
|
285
|
+
size: number | null;
|
|
286
286
|
uploadedAt: Date | null;
|
|
287
287
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
288
288
|
uploadUrl: string | null;
|
|
@@ -404,8 +404,8 @@ export declare function findSubmissionByAssignmentAndStudent(assignmentId: strin
|
|
|
404
404
|
type: string;
|
|
405
405
|
name: string;
|
|
406
406
|
id: string;
|
|
407
|
-
size: number | null;
|
|
408
407
|
userId: string | null;
|
|
408
|
+
size: number | null;
|
|
409
409
|
uploadedAt: Date | null;
|
|
410
410
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
411
411
|
uploadUrl: string | null;
|
|
@@ -432,8 +432,8 @@ export declare function findSubmissionByAssignmentAndStudent(assignmentId: strin
|
|
|
432
432
|
type: string;
|
|
433
433
|
name: string;
|
|
434
434
|
id: string;
|
|
435
|
-
size: number | null;
|
|
436
435
|
userId: string | null;
|
|
436
|
+
size: number | null;
|
|
437
437
|
uploadedAt: Date | null;
|
|
438
438
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
439
439
|
uploadUrl: string | null;
|
|
@@ -460,10 +460,10 @@ export declare function findSubmissionByAssignmentAndStudent(assignmentId: strin
|
|
|
460
460
|
username: string;
|
|
461
461
|
profile: {
|
|
462
462
|
id: string;
|
|
463
|
-
userId: string;
|
|
464
463
|
createdAt: Date;
|
|
465
|
-
location: string | null;
|
|
466
464
|
updatedAt: Date;
|
|
465
|
+
userId: string;
|
|
466
|
+
location: string | null;
|
|
467
467
|
displayName: string | null;
|
|
468
468
|
bio: string | null;
|
|
469
469
|
website: string | null;
|
|
@@ -473,8 +473,8 @@ export declare function findSubmissionByAssignmentAndStudent(assignmentId: strin
|
|
|
473
473
|
};
|
|
474
474
|
} & {
|
|
475
475
|
id: string;
|
|
476
|
-
assignmentId: string;
|
|
477
476
|
createdAt: Date;
|
|
477
|
+
assignmentId: string;
|
|
478
478
|
modifiedAt: Date;
|
|
479
479
|
studentId: string;
|
|
480
480
|
extendedResponse: string | null;
|
|
@@ -549,8 +549,8 @@ export declare function findSubmissionByIdForClassMember(submissionId: string, c
|
|
|
549
549
|
type: string;
|
|
550
550
|
name: string;
|
|
551
551
|
id: string;
|
|
552
|
-
size: number | null;
|
|
553
552
|
userId: string | null;
|
|
553
|
+
size: number | null;
|
|
554
554
|
uploadedAt: Date | null;
|
|
555
555
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
556
556
|
uploadUrl: string | null;
|
|
@@ -577,8 +577,8 @@ export declare function findSubmissionByIdForClassMember(submissionId: string, c
|
|
|
577
577
|
type: string;
|
|
578
578
|
name: string;
|
|
579
579
|
id: string;
|
|
580
|
-
size: number | null;
|
|
581
580
|
userId: string | null;
|
|
581
|
+
size: number | null;
|
|
582
582
|
uploadedAt: Date | null;
|
|
583
583
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
584
584
|
uploadUrl: string | null;
|
|
@@ -605,10 +605,10 @@ export declare function findSubmissionByIdForClassMember(submissionId: string, c
|
|
|
605
605
|
username: string;
|
|
606
606
|
profile: {
|
|
607
607
|
id: string;
|
|
608
|
-
userId: string;
|
|
609
608
|
createdAt: Date;
|
|
610
|
-
location: string | null;
|
|
611
609
|
updatedAt: Date;
|
|
610
|
+
userId: string;
|
|
611
|
+
location: string | null;
|
|
612
612
|
displayName: string | null;
|
|
613
613
|
bio: string | null;
|
|
614
614
|
website: string | null;
|
|
@@ -618,8 +618,8 @@ export declare function findSubmissionByIdForClassMember(submissionId: string, c
|
|
|
618
618
|
};
|
|
619
619
|
} & {
|
|
620
620
|
id: string;
|
|
621
|
-
assignmentId: string;
|
|
622
621
|
createdAt: Date;
|
|
622
|
+
assignmentId: string;
|
|
623
623
|
modifiedAt: Date;
|
|
624
624
|
studentId: string;
|
|
625
625
|
extendedResponse: string | null;
|
|
@@ -691,8 +691,8 @@ export declare function findSubmissionForUpdate(submissionId: string, userId: st
|
|
|
691
691
|
type: string;
|
|
692
692
|
name: string;
|
|
693
693
|
id: string;
|
|
694
|
-
size: number | null;
|
|
695
694
|
userId: string | null;
|
|
695
|
+
size: number | null;
|
|
696
696
|
uploadedAt: Date | null;
|
|
697
697
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
698
698
|
uploadUrl: string | null;
|
|
@@ -719,8 +719,8 @@ export declare function findSubmissionForUpdate(submissionId: string, userId: st
|
|
|
719
719
|
type: string;
|
|
720
720
|
name: string;
|
|
721
721
|
id: string;
|
|
722
|
-
size: number | null;
|
|
723
722
|
userId: string | null;
|
|
723
|
+
size: number | null;
|
|
724
724
|
uploadedAt: Date | null;
|
|
725
725
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
726
726
|
uploadUrl: string | null;
|
|
@@ -744,8 +744,8 @@ export declare function findSubmissionForUpdate(submissionId: string, userId: st
|
|
|
744
744
|
})[];
|
|
745
745
|
} & {
|
|
746
746
|
id: string;
|
|
747
|
-
assignmentId: string;
|
|
748
747
|
createdAt: Date;
|
|
748
|
+
assignmentId: string;
|
|
749
749
|
modifiedAt: Date;
|
|
750
750
|
studentId: string;
|
|
751
751
|
extendedResponse: string | null;
|
|
@@ -820,8 +820,8 @@ export declare function createSubmission(assignmentId: string, studentId: string
|
|
|
820
820
|
type: string;
|
|
821
821
|
name: string;
|
|
822
822
|
id: string;
|
|
823
|
-
size: number | null;
|
|
824
823
|
userId: string | null;
|
|
824
|
+
size: number | null;
|
|
825
825
|
uploadedAt: Date | null;
|
|
826
826
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
827
827
|
uploadUrl: string | null;
|
|
@@ -848,8 +848,8 @@ export declare function createSubmission(assignmentId: string, studentId: string
|
|
|
848
848
|
type: string;
|
|
849
849
|
name: string;
|
|
850
850
|
id: string;
|
|
851
|
-
size: number | null;
|
|
852
851
|
userId: string | null;
|
|
852
|
+
size: number | null;
|
|
853
853
|
uploadedAt: Date | null;
|
|
854
854
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
855
855
|
uploadUrl: string | null;
|
|
@@ -877,8 +877,8 @@ export declare function createSubmission(assignmentId: string, studentId: string
|
|
|
877
877
|
};
|
|
878
878
|
} & {
|
|
879
879
|
id: string;
|
|
880
|
-
assignmentId: string;
|
|
881
880
|
createdAt: Date;
|
|
881
|
+
assignmentId: string;
|
|
882
882
|
modifiedAt: Date;
|
|
883
883
|
studentId: string;
|
|
884
884
|
extendedResponse: string | null;
|
|
@@ -946,6 +946,38 @@ export declare function findAssignmentWithClassForTeacher(assignmentId: string,
|
|
|
946
946
|
};
|
|
947
947
|
};
|
|
948
948
|
}>;
|
|
949
|
+
/**
|
|
950
|
+
* Clone an assignment into another class with a new title: copies settings, duplicates linked
|
|
951
|
+
* worksheets into the target class, clones attachment file records (same storage path),
|
|
952
|
+
* creates empty submissions for all students in the target class, and does not copy the
|
|
953
|
+
* calendar event link or per-student “assigned to” overrides.
|
|
954
|
+
*/
|
|
955
|
+
export declare function duplicateAssignment(sourceAssignmentId: string, targetClassId: string, title: string, duplicatingUserId: string): Promise<{
|
|
956
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
957
|
+
id: string;
|
|
958
|
+
createdAt: Date | null;
|
|
959
|
+
modifiedAt: Date | null;
|
|
960
|
+
classId: string;
|
|
961
|
+
title: string;
|
|
962
|
+
instructions: string;
|
|
963
|
+
dueDate: Date;
|
|
964
|
+
teacherId: string;
|
|
965
|
+
acceptFiles: boolean;
|
|
966
|
+
acceptExtendedResponse: boolean;
|
|
967
|
+
acceptWorksheet: boolean;
|
|
968
|
+
gradeWithAI: boolean;
|
|
969
|
+
aiPolicyLevel: number;
|
|
970
|
+
sectionId: string | null;
|
|
971
|
+
graded: boolean;
|
|
972
|
+
maxGrade: number | null;
|
|
973
|
+
weight: number;
|
|
974
|
+
inProgress: boolean;
|
|
975
|
+
template: boolean;
|
|
976
|
+
eventId: string | null;
|
|
977
|
+
markSchemeId: string | null;
|
|
978
|
+
order: number | null;
|
|
979
|
+
gradingBoundaryId: string | null;
|
|
980
|
+
} | null>;
|
|
949
981
|
/** @returns Submissions for assignment (teacher view). */
|
|
950
982
|
export declare function findSubmissionsByAssignmentForTeacher(assignmentId: string, teacherId: string): import(".prisma/client").Prisma.PrismaPromise<({
|
|
951
983
|
assignment: {
|
|
@@ -998,8 +1030,8 @@ export declare function findSubmissionsByAssignmentForTeacher(assignmentId: stri
|
|
|
998
1030
|
type: string;
|
|
999
1031
|
name: string;
|
|
1000
1032
|
id: string;
|
|
1001
|
-
size: number | null;
|
|
1002
1033
|
userId: string | null;
|
|
1034
|
+
size: number | null;
|
|
1003
1035
|
uploadedAt: Date | null;
|
|
1004
1036
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1005
1037
|
uploadUrl: string | null;
|
|
@@ -1026,8 +1058,8 @@ export declare function findSubmissionsByAssignmentForTeacher(assignmentId: stri
|
|
|
1026
1058
|
type: string;
|
|
1027
1059
|
name: string;
|
|
1028
1060
|
id: string;
|
|
1029
|
-
size: number | null;
|
|
1030
1061
|
userId: string | null;
|
|
1062
|
+
size: number | null;
|
|
1031
1063
|
uploadedAt: Date | null;
|
|
1032
1064
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1033
1065
|
uploadUrl: string | null;
|
|
@@ -1060,8 +1092,8 @@ export declare function findSubmissionsByAssignmentForTeacher(assignmentId: stri
|
|
|
1060
1092
|
};
|
|
1061
1093
|
} & {
|
|
1062
1094
|
id: string;
|
|
1063
|
-
assignmentId: string;
|
|
1064
1095
|
createdAt: Date;
|
|
1096
|
+
assignmentId: string;
|
|
1065
1097
|
modifiedAt: Date;
|
|
1066
1098
|
studentId: string;
|
|
1067
1099
|
extendedResponse: string | null;
|
|
@@ -1127,8 +1159,8 @@ export declare function findSubmissionForTeacherUpdate(submissionId: string, tea
|
|
|
1127
1159
|
type: string;
|
|
1128
1160
|
name: string;
|
|
1129
1161
|
id: string;
|
|
1130
|
-
size: number | null;
|
|
1131
1162
|
userId: string | null;
|
|
1163
|
+
size: number | null;
|
|
1132
1164
|
uploadedAt: Date | null;
|
|
1133
1165
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1134
1166
|
uploadUrl: string | null;
|
|
@@ -1155,8 +1187,8 @@ export declare function findSubmissionForTeacherUpdate(submissionId: string, tea
|
|
|
1155
1187
|
type: string;
|
|
1156
1188
|
name: string;
|
|
1157
1189
|
id: string;
|
|
1158
|
-
size: number | null;
|
|
1159
1190
|
userId: string | null;
|
|
1191
|
+
size: number | null;
|
|
1160
1192
|
uploadedAt: Date | null;
|
|
1161
1193
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1162
1194
|
uploadUrl: string | null;
|
|
@@ -1184,8 +1216,8 @@ export declare function findSubmissionForTeacherUpdate(submissionId: string, tea
|
|
|
1184
1216
|
type: string;
|
|
1185
1217
|
name: string;
|
|
1186
1218
|
id: string;
|
|
1187
|
-
size: number | null;
|
|
1188
1219
|
userId: string | null;
|
|
1220
|
+
size: number | null;
|
|
1189
1221
|
uploadedAt: Date | null;
|
|
1190
1222
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1191
1223
|
uploadUrl: string | null;
|
|
@@ -1212,8 +1244,8 @@ export declare function findSubmissionForTeacherUpdate(submissionId: string, tea
|
|
|
1212
1244
|
type: string;
|
|
1213
1245
|
name: string;
|
|
1214
1246
|
id: string;
|
|
1215
|
-
size: number | null;
|
|
1216
1247
|
userId: string | null;
|
|
1248
|
+
size: number | null;
|
|
1217
1249
|
uploadedAt: Date | null;
|
|
1218
1250
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1219
1251
|
uploadUrl: string | null;
|
|
@@ -1237,8 +1269,8 @@ export declare function findSubmissionForTeacherUpdate(submissionId: string, tea
|
|
|
1237
1269
|
})[];
|
|
1238
1270
|
} & {
|
|
1239
1271
|
id: string;
|
|
1240
|
-
assignmentId: string;
|
|
1241
1272
|
createdAt: Date;
|
|
1273
|
+
assignmentId: string;
|
|
1242
1274
|
modifiedAt: Date;
|
|
1243
1275
|
studentId: string;
|
|
1244
1276
|
extendedResponse: string | null;
|