@studious-lms/server 1.22.0 → 1.24.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/.env.example +0 -1
- package/data/curriculum/nepal-cdc-g4-g5/README.md +90 -0
- package/data/curriculum/nepal-cdc-g4-g5/manifest.json +97 -0
- package/data/curriculum/nepal-cdc-g4-g5/proficiency-scale.json +76 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/english.json +6936 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/health-physical-creative-arts.json +3401 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/mathematics.json +1511 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/nepali.json +7928 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/science-technology.json +2420 -0
- package/data/curriculum/nepal-cdc-g4-g5/subjects/social-studies.json +2177 -0
- package/dist/lib/assignmentTypeDefaults.d.ts +41 -0
- package/dist/lib/assignmentTypeDefaults.d.ts.map +1 -0
- package/dist/lib/assignmentTypeDefaults.js +167 -0
- package/dist/lib/assignmentTypeDefaults.js.map +1 -0
- package/dist/lib/config/env.d.ts +0 -8
- package/dist/lib/config/env.d.ts.map +1 -1
- package/dist/lib/config/env.js +2 -5
- package/dist/lib/config/env.js.map +1 -1
- package/dist/lib/feePdf.d.ts +19 -0
- package/dist/lib/feePdf.d.ts.map +1 -0
- package/dist/lib/feePdf.js +167 -0
- package/dist/lib/feePdf.js.map +1 -0
- package/dist/lib/feePdfFormat.d.ts +4 -0
- package/dist/lib/feePdfFormat.d.ts.map +1 -0
- package/dist/lib/feePdfFormat.js +16 -0
- package/dist/lib/feePdfFormat.js.map +1 -0
- package/dist/lib/idCardPdf.d.ts +26 -0
- package/dist/lib/idCardPdf.d.ts.map +1 -0
- package/dist/lib/idCardPdf.js +272 -0
- package/dist/lib/idCardPdf.js.map +1 -0
- package/dist/lib/pdfLetterhead.d.ts +41 -0
- package/dist/lib/pdfLetterhead.d.ts.map +1 -0
- package/dist/lib/pdfLetterhead.js +86 -0
- package/dist/lib/pdfLetterhead.js.map +1 -0
- package/dist/lib/transcriptPdf.d.ts +55 -0
- package/dist/lib/transcriptPdf.d.ts.map +1 -0
- package/dist/lib/transcriptPdf.js +303 -0
- package/dist/lib/transcriptPdf.js.map +1 -0
- package/dist/models/academicCalendar.d.ts +198 -0
- package/dist/models/academicCalendar.d.ts.map +1 -0
- package/dist/models/academicCalendar.js +106 -0
- package/dist/models/academicCalendar.js.map +1 -0
- package/dist/models/agenda.d.ts +8 -0
- package/dist/models/agenda.d.ts.map +1 -1
- package/dist/models/announcement.d.ts +2 -0
- package/dist/models/announcement.d.ts.map +1 -1
- package/dist/models/assignment.d.ts +66 -0
- package/dist/models/assignment.d.ts.map +1 -1
- package/dist/models/attendance.d.ts +659 -21
- package/dist/models/attendance.d.ts.map +1 -1
- package/dist/models/attendance.js +544 -75
- package/dist/models/attendance.js.map +1 -1
- package/dist/models/auth.d.ts +2 -0
- package/dist/models/auth.d.ts.map +1 -1
- package/dist/models/class.d.ts +12 -0
- package/dist/models/class.d.ts.map +1 -1
- package/dist/models/class.js +3 -2
- package/dist/models/class.js.map +1 -1
- package/dist/models/event.d.ts +16 -0
- package/dist/models/event.d.ts.map +1 -1
- package/dist/models/fees.d.ts +554 -0
- package/dist/models/fees.d.ts.map +1 -0
- package/dist/models/fees.js +278 -0
- package/dist/models/fees.js.map +1 -0
- package/dist/models/file.d.ts +29 -0
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/folder.d.ts +2 -0
- package/dist/models/folder.d.ts.map +1 -1
- package/dist/models/labChat.d.ts +2 -0
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/marketplace.d.ts +178 -0
- package/dist/models/marketplace.d.ts.map +1 -0
- package/dist/models/marketplace.js +115 -0
- package/dist/models/marketplace.js.map +1 -0
- package/dist/models/moduleItem.d.ts +304 -0
- package/dist/models/moduleItem.d.ts.map +1 -0
- package/dist/models/moduleItem.js +78 -0
- package/dist/models/moduleItem.js.map +1 -0
- package/dist/models/newtonChat.d.ts +1 -0
- package/dist/models/newtonChat.d.ts.map +1 -1
- package/dist/models/school.d.ts +193 -0
- package/dist/models/school.d.ts.map +1 -1
- package/dist/models/school.js +80 -2
- package/dist/models/school.js.map +1 -1
- package/dist/models/section.d.ts +4 -0
- package/dist/models/section.d.ts.map +1 -1
- package/dist/models/worksheet.d.ts +19 -0
- package/dist/models/worksheet.d.ts.map +1 -1
- package/dist/models/worksheet.js +2 -2
- package/dist/models/worksheet.js.map +1 -1
- package/dist/routers/_app.d.ts +11605 -7133
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +12 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/academicCalendar.d.ts +229 -0
- package/dist/routers/academicCalendar.d.ts.map +1 -0
- package/dist/routers/academicCalendar.js +75 -0
- package/dist/routers/academicCalendar.js.map +1 -0
- package/dist/routers/admin.d.ts +2 -0
- package/dist/routers/admin.d.ts.map +1 -1
- package/dist/routers/agenda.d.ts +8 -0
- package/dist/routers/agenda.d.ts.map +1 -1
- package/dist/routers/assignment.d.ts +75 -0
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/assignment.js +10 -2
- package/dist/routers/assignment.js.map +1 -1
- package/dist/routers/attendance.d.ts +103 -0
- package/dist/routers/attendance.d.ts.map +1 -1
- package/dist/routers/attendance.js +8 -5
- package/dist/routers/attendance.js.map +1 -1
- package/dist/routers/class.d.ts +27 -0
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +6 -2
- package/dist/routers/class.js.map +1 -1
- package/dist/routers/event.d.ts +8 -0
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/fees.d.ts +513 -0
- package/dist/routers/fees.d.ts.map +1 -0
- package/dist/routers/fees.js +88 -0
- package/dist/routers/fees.js.map +1 -0
- package/dist/routers/file.d.ts +2 -0
- package/dist/routers/file.d.ts.map +1 -1
- package/dist/routers/gradebook.d.ts +4 -1
- package/dist/routers/gradebook.d.ts.map +1 -1
- package/dist/routers/marketplace.d.ts +371 -0
- package/dist/routers/marketplace.d.ts.map +1 -0
- package/dist/routers/marketplace.js +87 -0
- package/dist/routers/marketplace.js.map +1 -0
- package/dist/routers/moduleItem.d.ts +263 -0
- package/dist/routers/moduleItem.d.ts.map +1 -0
- package/dist/routers/moduleItem.js +60 -0
- package/dist/routers/moduleItem.js.map +1 -0
- package/dist/routers/parent.d.ts +169 -0
- package/dist/routers/parent.d.ts.map +1 -0
- package/dist/routers/parent.js +49 -0
- package/dist/routers/parent.js.map +1 -0
- package/dist/routers/school.d.ts +476 -6
- package/dist/routers/school.d.ts.map +1 -1
- package/dist/routers/school.js +130 -4
- package/dist/routers/school.js.map +1 -1
- package/dist/routers/worksheet.d.ts +27 -0
- 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/academicCalendar.d.ts +173 -0
- package/dist/services/academicCalendar.d.ts.map +1 -0
- package/dist/services/academicCalendar.js +214 -0
- package/dist/services/academicCalendar.js.map +1 -0
- package/dist/services/adminInstitution.d.ts +2 -0
- package/dist/services/adminInstitution.d.ts.map +1 -1
- package/dist/services/agenda.d.ts +8 -0
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/assignment.d.ts +75 -0
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/assignment.js +91 -12
- package/dist/services/assignment.js.map +1 -1
- package/dist/services/attendance.d.ts +323 -10
- package/dist/services/attendance.d.ts.map +1 -1
- package/dist/services/attendance.js +385 -25
- package/dist/services/attendance.js.map +1 -1
- package/dist/services/attendanceMerge.d.ts +53 -0
- package/dist/services/attendanceMerge.d.ts.map +1 -0
- package/dist/services/attendanceMerge.js +87 -0
- package/dist/services/attendanceMerge.js.map +1 -0
- package/dist/services/attendanceRate.d.ts +24 -0
- package/dist/services/attendanceRate.d.ts.map +1 -0
- package/dist/services/attendanceRate.js +31 -0
- package/dist/services/attendanceRate.js.map +1 -0
- package/dist/services/attendanceStats.d.ts +22 -0
- package/dist/services/attendanceStats.d.ts.map +1 -0
- package/dist/services/attendanceStats.js +45 -0
- package/dist/services/attendanceStats.js.map +1 -0
- package/dist/services/class.d.ts +27 -0
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/class.js +26 -3
- package/dist/services/class.js.map +1 -1
- package/dist/services/event.d.ts +8 -0
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/fees.d.ts +422 -0
- package/dist/services/fees.d.ts.map +1 -0
- package/dist/services/fees.js +310 -0
- package/dist/services/fees.js.map +1 -0
- package/dist/services/feesAuthz.d.ts +49 -0
- package/dist/services/feesAuthz.d.ts.map +1 -0
- package/dist/services/feesAuthz.js +52 -0
- package/dist/services/feesAuthz.js.map +1 -0
- package/dist/services/file.d.ts +4 -0
- package/dist/services/file.d.ts.map +1 -1
- package/dist/services/gradebook.d.ts +18 -1
- package/dist/services/gradebook.d.ts.map +1 -1
- package/dist/services/gradebook.js +57 -2
- package/dist/services/gradebook.js.map +1 -1
- package/dist/services/idCard.d.ts +11 -0
- package/dist/services/idCard.d.ts.map +1 -0
- package/dist/services/idCard.js +122 -0
- package/dist/services/idCard.js.map +1 -0
- package/dist/services/marketplace.d.ts +301 -0
- package/dist/services/marketplace.d.ts.map +1 -0
- package/dist/services/marketplace.js +628 -0
- package/dist/services/marketplace.js.map +1 -0
- package/dist/services/moduleItem.d.ts +196 -0
- package/dist/services/moduleItem.d.ts.map +1 -0
- package/dist/services/moduleItem.js +188 -0
- package/dist/services/moduleItem.js.map +1 -0
- package/dist/services/notification.d.ts +58 -0
- package/dist/services/notification.d.ts.map +1 -1
- package/dist/services/notification.js +30 -2
- package/dist/services/notification.js.map +1 -1
- package/dist/services/parentPortal.d.ts +133 -0
- package/dist/services/parentPortal.d.ts.map +1 -0
- package/dist/services/parentPortal.js +328 -0
- package/dist/services/parentPortal.js.map +1 -0
- package/dist/services/school.d.ts +122 -3
- package/dist/services/school.d.ts.map +1 -1
- package/dist/services/school.js +179 -47
- package/dist/services/school.js.map +1 -1
- package/dist/services/studentImport.d.ts +34 -0
- package/dist/services/studentImport.d.ts.map +1 -0
- package/dist/services/studentImport.js +236 -0
- package/dist/services/studentImport.js.map +1 -0
- package/dist/services/transcript.d.ts +61 -0
- package/dist/services/transcript.d.ts.map +1 -0
- package/dist/services/transcript.js +243 -0
- package/dist/services/transcript.js.map +1 -0
- package/dist/services/worksheet.d.ts +22 -0
- package/dist/services/worksheet.d.ts.map +1 -1
- package/dist/services/worksheet.js +94 -2
- package/dist/services/worksheet.js.map +1 -1
- package/dist/trpc.d.ts +1 -1
- package/dist/trpc.d.ts.map +1 -1
- package/dist/trpc.js +5 -5
- package/dist/trpc.js.map +1 -1
- package/dist/utils/adminPanelAccess.d.ts +4 -5
- package/dist/utils/adminPanelAccess.d.ts.map +1 -1
- package/dist/utils/adminPanelAccess.js +12 -34
- package/dist/utils/adminPanelAccess.js.map +1 -1
- package/package.json +2 -1
- package/prisma/migrations/20260804120000_add_attendance_records_and_excusals/migration.sql +114 -0
- package/prisma/migrations/20260804120100_add_fee_plans_invoices_payments/migration.sql +101 -0
- package/prisma/migrations/20260804120200_add_marketplace_listings/migration.sql +54 -0
- package/prisma/migrations/20260804120300_content_platform_b3_b9/migration.sql +63 -0
- package/prisma/migrations/20260804120400_c_academic_ops/migration.sql +77 -0
- package/prisma/schema.prisma +371 -11
- package/scripts/import-nepal-cdc-curriculum.ts +379 -0
- package/src/lib/assignmentTypeDefaults.ts +222 -0
- package/src/lib/config/env.ts +0 -3
- package/src/lib/feePdf.ts +199 -0
- package/src/lib/feePdfFormat.ts +14 -0
- package/src/lib/idCardPdf.ts +336 -0
- package/src/lib/pdfLetterhead.ts +124 -0
- package/src/lib/transcriptPdf.ts +502 -0
- package/src/models/academicCalendar.ts +139 -0
- package/src/models/attendance.ts +704 -73
- package/src/models/class.ts +1 -0
- package/src/models/fees.ts +349 -0
- package/src/models/marketplace.ts +158 -0
- package/src/models/moduleItem.ts +107 -0
- package/src/models/school.ts +95 -0
- package/src/models/worksheet.ts +2 -0
- package/src/routers/_app.ts +10 -0
- package/src/routers/academicCalendar.ts +103 -0
- package/src/routers/assignment.ts +8 -0
- package/src/routers/attendance.ts +7 -3
- package/src/routers/class.ts +4 -0
- package/src/routers/fees.ts +126 -0
- package/src/routers/marketplace.ts +134 -0
- package/src/routers/moduleItem.ts +89 -0
- package/src/routers/parent.ts +68 -0
- package/src/routers/school.ts +184 -1
- package/src/routers/worksheet.ts +11 -0
- package/src/services/academicCalendar.ts +299 -0
- package/src/services/assignment.ts +122 -12
- package/src/services/attendance.ts +548 -26
- package/src/services/attendanceMerge.ts +139 -0
- package/src/services/attendanceRate.ts +41 -0
- package/src/services/attendanceStats.ts +63 -0
- package/src/services/class.ts +25 -1
- package/src/services/fees.ts +424 -0
- package/src/services/feesAuthz.ts +77 -0
- package/src/services/gradebook.ts +70 -0
- package/src/services/idCard.ts +147 -0
- package/src/services/marketplace.ts +785 -0
- package/src/services/moduleItem.ts +274 -0
- package/src/services/notification.ts +43 -0
- package/src/services/parentPortal.ts +380 -0
- package/src/services/school.ts +243 -45
- package/src/services/studentImport.ts +273 -0
- package/src/services/transcript.ts +313 -0
- package/src/services/worksheet.ts +111 -0
- package/src/trpc.ts +3 -3
- package/src/utils/adminPanelAccess.ts +12 -35
- package/tests/unit/assignmentTypeDefaults.test.ts +52 -0
- package/tests/unit/lib/feePdf.test.ts +15 -0
- package/tests/unit/lib/idCardPdf.test.ts +40 -0
- package/tests/unit/lib/transcriptPdf.test.ts +111 -0
- package/tests/unit/services/attendanceMerge.test.ts +90 -0
- package/tests/unit/services/attendanceRate.test.ts +38 -0
- package/tests/unit/services/attendanceStats.test.ts +54 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModuleItem model – Canvas-style pages / file collections / videos in a section.
|
|
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]="d1d2bbd4-721b-51f6-98ca-cc0a8d7ee9ff")}catch(e){}}();
|
|
6
|
+
import { prisma } from "../lib/prisma.js";
|
|
7
|
+
import { classMemberOrSchoolAdminWhere, classTeacherOrSchoolAdminWhere, } from "./access.js";
|
|
8
|
+
const moduleItemInclude = {
|
|
9
|
+
files: {
|
|
10
|
+
select: {
|
|
11
|
+
id: true,
|
|
12
|
+
name: true,
|
|
13
|
+
type: true,
|
|
14
|
+
size: true,
|
|
15
|
+
path: true,
|
|
16
|
+
uploadStatus: true,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
section: {
|
|
20
|
+
select: { id: true, name: true, classId: true, color: true },
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export function findModuleItemsByClassId(classId) {
|
|
24
|
+
return prisma.moduleItem.findMany({
|
|
25
|
+
where: { section: { classId } },
|
|
26
|
+
include: moduleItemInclude,
|
|
27
|
+
orderBy: [{ section: { order: "asc" } }, { order: "asc" }],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export function findModuleItemsBySectionId(sectionId) {
|
|
31
|
+
return prisma.moduleItem.findMany({
|
|
32
|
+
where: { sectionId },
|
|
33
|
+
include: moduleItemInclude,
|
|
34
|
+
orderBy: { order: "asc" },
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export function findModuleItemByIdForMember(id, userId) {
|
|
38
|
+
return prisma.moduleItem.findFirst({
|
|
39
|
+
where: {
|
|
40
|
+
id,
|
|
41
|
+
section: { class: classMemberOrSchoolAdminWhere(userId) },
|
|
42
|
+
},
|
|
43
|
+
include: moduleItemInclude,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
export function findModuleItemByIdForTeacher(id, userId) {
|
|
47
|
+
return prisma.moduleItem.findFirst({
|
|
48
|
+
where: {
|
|
49
|
+
id,
|
|
50
|
+
section: { class: classTeacherOrSchoolAdminWhere(userId) },
|
|
51
|
+
},
|
|
52
|
+
include: moduleItemInclude,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function createModuleItem(data) {
|
|
56
|
+
return prisma.moduleItem.create({
|
|
57
|
+
data,
|
|
58
|
+
include: moduleItemInclude,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export function updateModuleItem(id, data) {
|
|
62
|
+
return prisma.moduleItem.update({
|
|
63
|
+
where: { id },
|
|
64
|
+
data,
|
|
65
|
+
include: moduleItemInclude,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
export function deleteModuleItem(id) {
|
|
69
|
+
return prisma.moduleItem.delete({ where: { id } });
|
|
70
|
+
}
|
|
71
|
+
export function attachFilesToModuleItem(moduleItemId, fileIds) {
|
|
72
|
+
return prisma.file.updateMany({
|
|
73
|
+
where: { id: { in: fileIds } },
|
|
74
|
+
data: { moduleItemId },
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=moduleItem.js.map
|
|
78
|
+
//# debugId=d1d2bbd4-721b-51f6-98ca-cc0a8d7ee9ff
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moduleItem.js","sources":["models/moduleItem.ts"],"sourceRoot":"/","sourcesContent":["/**\n * ModuleItem model – Canvas-style pages / file collections / videos in a section.\n */\nimport { prisma } from \"../lib/prisma.js\";\nimport type { ModuleItemType } from \"@prisma/client\";\nimport {\n classMemberOrSchoolAdminWhere,\n classTeacherOrSchoolAdminWhere,\n} from \"./access.js\";\n\nconst moduleItemInclude = {\n files: {\n select: {\n id: true,\n name: true,\n type: true,\n size: true,\n path: true,\n uploadStatus: true,\n },\n },\n section: {\n select: { id: true, name: true, classId: true, color: true },\n },\n} as const;\n\nexport function findModuleItemsByClassId(classId: string) {\n return prisma.moduleItem.findMany({\n where: { section: { classId } },\n include: moduleItemInclude,\n orderBy: [{ section: { order: \"asc\" } }, { order: \"asc\" }],\n });\n}\n\nexport function findModuleItemsBySectionId(sectionId: string) {\n return prisma.moduleItem.findMany({\n where: { sectionId },\n include: moduleItemInclude,\n orderBy: { order: \"asc\" },\n });\n}\n\nexport function findModuleItemByIdForMember(id: string, userId: string) {\n return prisma.moduleItem.findFirst({\n where: {\n id,\n section: { class: classMemberOrSchoolAdminWhere(userId) },\n },\n include: moduleItemInclude,\n });\n}\n\nexport function findModuleItemByIdForTeacher(id: string, userId: string) {\n return prisma.moduleItem.findFirst({\n where: {\n id,\n section: { class: classTeacherOrSchoolAdminWhere(userId) },\n },\n include: moduleItemInclude,\n });\n}\n\nexport function createModuleItem(data: {\n sectionId: string;\n title: string;\n type: ModuleItemType;\n body?: string | null;\n order?: number | null;\n published?: boolean;\n}) {\n return prisma.moduleItem.create({\n data,\n include: moduleItemInclude,\n });\n}\n\nexport function updateModuleItem(\n id: string,\n data: {\n title?: string;\n body?: string | null;\n order?: number | null;\n published?: boolean;\n type?: ModuleItemType;\n sectionId?: string;\n }\n) {\n return prisma.moduleItem.update({\n where: { id },\n data,\n include: moduleItemInclude,\n });\n}\n\nexport function deleteModuleItem(id: string) {\n return prisma.moduleItem.delete({ where: { id } });\n}\n\nexport function attachFilesToModuleItem(\n moduleItemId: string,\n fileIds: string[]\n) {\n return prisma.file.updateMany({\n where: { id: { in: fileIds } },\n data: { moduleItemId },\n });\n}\n"],"names":[],"mappings":"AAAA;;GAEG;;;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AAErB,MAAM,iBAAiB,GAAG;IACxB,KAAK,EAAE;QACL,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;KAC7D;CACO,CAAC;AAEX,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE;QAC/B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC1D,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChC,KAAK,EAAE,EAAE,SAAS,EAAE;QACpB,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAAU,EAAE,MAAc;IACpE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QACjC,KAAK,EAAE;YACL,EAAE;YACF,OAAO,EAAE,EAAE,KAAK,EAAE,6BAA6B,CAAC,MAAM,CAAC,EAAE;SAC1D;QACD,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAAU,EAAE,MAAc;IACrE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QACjC,KAAK,EAAE;YACL,EAAE;YACF,OAAO,EAAE,EAAE,KAAK,EAAE,8BAA8B,CAAC,MAAM,CAAC,EAAE;SAC3D;QACD,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAOhC;IACC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9B,IAAI;QACJ,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,EAAU,EACV,IAOC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9B,KAAK,EAAE,EAAE,EAAE,EAAE;QACb,IAAI;QACJ,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,YAAoB,EACpB,OAAiB;IAEjB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5B,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QAC9B,IAAI,EAAE,EAAE,YAAY,EAAE;KACvB,CAAC,CAAC;AACL,CAAC","debug_id":"d1d2bbd4-721b-51f6-98ca-cc0a8d7ee9ff"}
|
|
@@ -36,6 +36,7 @@ export declare function findClassWithStudent(classId: string, studentId: string)
|
|
|
36
36
|
discussionsEnabled: boolean;
|
|
37
37
|
studentsCanCreateDiscussions: boolean;
|
|
38
38
|
studentsCanReply: boolean;
|
|
39
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
39
40
|
treatMissingAsZero: boolean;
|
|
40
41
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
41
42
|
} | 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOtE;AAED,sDAAsD;AACtD,wBAAgB,oCAAoC,CAClD,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQlB;AAED,kFAAkF;AAClF,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAyBf;AAED,wDAAwD;AACxD,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EAAE;;;;;;;;;KAQlB"}
|
package/dist/models/school.d.ts
CHANGED
|
@@ -109,12 +109,19 @@ export declare function listUserSchoolMemberships(userId: string): import("@pris
|
|
|
109
109
|
name: string;
|
|
110
110
|
description: string | null;
|
|
111
111
|
logoId: string | null;
|
|
112
|
+
letterheadFileId: string | null;
|
|
112
113
|
subdomain: string | null;
|
|
113
114
|
logo: {
|
|
114
115
|
path: string;
|
|
115
116
|
type: string;
|
|
116
117
|
id: string;
|
|
117
118
|
} | null;
|
|
119
|
+
letterhead: {
|
|
120
|
+
path: string;
|
|
121
|
+
type: string;
|
|
122
|
+
id: string;
|
|
123
|
+
name: string;
|
|
124
|
+
} | null;
|
|
118
125
|
};
|
|
119
126
|
} & {
|
|
120
127
|
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
@@ -171,6 +178,7 @@ export declare function createSchoolWithAdmin(data: {
|
|
|
171
178
|
name: string;
|
|
172
179
|
description: string | null;
|
|
173
180
|
logoId: string | null;
|
|
181
|
+
letterheadFileId: string | null;
|
|
174
182
|
subdomain: string | null;
|
|
175
183
|
}>;
|
|
176
184
|
export declare function getSchoolById(schoolId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
|
|
@@ -204,6 +212,7 @@ export declare function getSchoolById(schoolId: string): import("@prisma/client/
|
|
|
204
212
|
name: string;
|
|
205
213
|
description: string | null;
|
|
206
214
|
logoId: string | null;
|
|
215
|
+
letterheadFileId: string | null;
|
|
207
216
|
subdomain: string | null;
|
|
208
217
|
logo: {
|
|
209
218
|
path: string;
|
|
@@ -211,12 +220,19 @@ export declare function getSchoolById(schoolId: string): import("@prisma/client/
|
|
|
211
220
|
id: string;
|
|
212
221
|
name: string;
|
|
213
222
|
} | null;
|
|
223
|
+
letterhead: {
|
|
224
|
+
path: string;
|
|
225
|
+
type: string;
|
|
226
|
+
id: string;
|
|
227
|
+
name: string;
|
|
228
|
+
} | null;
|
|
214
229
|
} | null>;
|
|
215
230
|
export declare function updateSchoolRecord(schoolId: string, data: {
|
|
216
231
|
name?: string;
|
|
217
232
|
description?: string | null;
|
|
218
233
|
subdomain?: string | null;
|
|
219
234
|
logoId?: string | null;
|
|
235
|
+
letterheadFileId?: string | null;
|
|
220
236
|
}): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
|
|
221
237
|
result: {
|
|
222
238
|
userProfile: {
|
|
@@ -246,6 +262,7 @@ export declare function updateSchoolRecord(schoolId: string, data: {
|
|
|
246
262
|
name: string;
|
|
247
263
|
description: string | null;
|
|
248
264
|
logoId: string | null;
|
|
265
|
+
letterheadFileId: string | null;
|
|
249
266
|
subdomain: string | null;
|
|
250
267
|
}>;
|
|
251
268
|
export declare function getSchoolOverview(schoolId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
|
|
@@ -303,6 +320,181 @@ export declare function getSchoolOverview(schoolId: string): import("@prisma/cli
|
|
|
303
320
|
subject: string;
|
|
304
321
|
}[];
|
|
305
322
|
} | null>;
|
|
323
|
+
export declare function listRecentSchoolMembers(schoolId: string, take?: number): import("@prisma/client/runtime/library.js").PrismaPromise<{
|
|
324
|
+
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
325
|
+
user: {
|
|
326
|
+
id: string;
|
|
327
|
+
username: string;
|
|
328
|
+
email: string;
|
|
329
|
+
profile: {
|
|
330
|
+
profilePicture: string | null;
|
|
331
|
+
displayName: string | null;
|
|
332
|
+
profilePictureThumbnail: string | null;
|
|
333
|
+
} | null;
|
|
334
|
+
};
|
|
335
|
+
id: string;
|
|
336
|
+
createdAt: Date;
|
|
337
|
+
updatedAt: Date;
|
|
338
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
339
|
+
}[]>;
|
|
340
|
+
export declare function getSchoolMemberDetail(schoolId: string, memberUserId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
|
|
341
|
+
result: {
|
|
342
|
+
userProfile: {
|
|
343
|
+
profilePicture: () => {
|
|
344
|
+
needs: {
|
|
345
|
+
profilePicture: true;
|
|
346
|
+
};
|
|
347
|
+
compute(profile: {
|
|
348
|
+
profilePicture: string | null;
|
|
349
|
+
}): string | null;
|
|
350
|
+
};
|
|
351
|
+
profilePictureThumbnail: () => {
|
|
352
|
+
needs: {
|
|
353
|
+
profilePictureThumbnail: true;
|
|
354
|
+
};
|
|
355
|
+
compute(profile: {
|
|
356
|
+
profilePictureThumbnail: string | null;
|
|
357
|
+
}): string | null;
|
|
358
|
+
};
|
|
359
|
+
};
|
|
360
|
+
};
|
|
361
|
+
model: {};
|
|
362
|
+
query: {};
|
|
363
|
+
client: {};
|
|
364
|
+
}, {}>, "SchoolMembership", "findUnique", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
|
|
365
|
+
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
366
|
+
user: {
|
|
367
|
+
id: string;
|
|
368
|
+
username: string;
|
|
369
|
+
email: string;
|
|
370
|
+
profile: {
|
|
371
|
+
profilePicture: string | null;
|
|
372
|
+
displayName: string | null;
|
|
373
|
+
profilePictureThumbnail: string | null;
|
|
374
|
+
} | null;
|
|
375
|
+
};
|
|
376
|
+
id: string;
|
|
377
|
+
createdAt: Date;
|
|
378
|
+
updatedAt: Date;
|
|
379
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
380
|
+
} | null>;
|
|
381
|
+
export declare function listMemberClasses(schoolId: string, memberUserId: string): Promise<[{
|
|
382
|
+
section: string;
|
|
383
|
+
id: string;
|
|
384
|
+
name: string;
|
|
385
|
+
_count: {
|
|
386
|
+
teachers: number;
|
|
387
|
+
students: number;
|
|
388
|
+
};
|
|
389
|
+
color: string | null;
|
|
390
|
+
subject: string;
|
|
391
|
+
}[], {
|
|
392
|
+
section: string;
|
|
393
|
+
id: string;
|
|
394
|
+
name: string;
|
|
395
|
+
_count: {
|
|
396
|
+
teachers: number;
|
|
397
|
+
students: number;
|
|
398
|
+
};
|
|
399
|
+
color: string | null;
|
|
400
|
+
subject: string;
|
|
401
|
+
}[]]>;
|
|
402
|
+
export declare function findSchoolClass(schoolId: string, classId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
|
|
403
|
+
result: {
|
|
404
|
+
userProfile: {
|
|
405
|
+
profilePicture: () => {
|
|
406
|
+
needs: {
|
|
407
|
+
profilePicture: true;
|
|
408
|
+
};
|
|
409
|
+
compute(profile: {
|
|
410
|
+
profilePicture: string | null;
|
|
411
|
+
}): string | null;
|
|
412
|
+
};
|
|
413
|
+
profilePictureThumbnail: () => {
|
|
414
|
+
needs: {
|
|
415
|
+
profilePictureThumbnail: true;
|
|
416
|
+
};
|
|
417
|
+
compute(profile: {
|
|
418
|
+
profilePictureThumbnail: string | null;
|
|
419
|
+
}): string | null;
|
|
420
|
+
};
|
|
421
|
+
};
|
|
422
|
+
};
|
|
423
|
+
model: {};
|
|
424
|
+
query: {};
|
|
425
|
+
client: {};
|
|
426
|
+
}, {}>, "Class", "findFirst", null> & import("@prisma/client/runtime/library.js").PrismaPromise<{
|
|
427
|
+
id: string;
|
|
428
|
+
name: string;
|
|
429
|
+
} | null>;
|
|
430
|
+
export declare function deleteSchoolClassRecord(schoolId: string, classId: string): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
|
|
431
|
+
result: {
|
|
432
|
+
userProfile: {
|
|
433
|
+
profilePicture: () => {
|
|
434
|
+
needs: {
|
|
435
|
+
profilePicture: true;
|
|
436
|
+
};
|
|
437
|
+
compute(profile: {
|
|
438
|
+
profilePicture: string | null;
|
|
439
|
+
}): string | null;
|
|
440
|
+
};
|
|
441
|
+
profilePictureThumbnail: () => {
|
|
442
|
+
needs: {
|
|
443
|
+
profilePictureThumbnail: true;
|
|
444
|
+
};
|
|
445
|
+
compute(profile: {
|
|
446
|
+
profilePictureThumbnail: string | null;
|
|
447
|
+
}): string | null;
|
|
448
|
+
};
|
|
449
|
+
};
|
|
450
|
+
};
|
|
451
|
+
model: {};
|
|
452
|
+
query: {};
|
|
453
|
+
client: {};
|
|
454
|
+
}, {}>, "Class", "delete", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
|
|
455
|
+
id: string;
|
|
456
|
+
}>;
|
|
457
|
+
export declare function updateSchoolClassMembers(classId: string, data: {
|
|
458
|
+
addTeacherIds: string[];
|
|
459
|
+
removeTeacherIds: string[];
|
|
460
|
+
addStudentIds: string[];
|
|
461
|
+
removeStudentIds: string[];
|
|
462
|
+
}): import("@prisma/client/runtime/library.js").DynamicModelExtensionFluentApi<import(".prisma/client").Prisma.TypeMap<import("@prisma/client/runtime/library.js").InternalArgs & {
|
|
463
|
+
result: {
|
|
464
|
+
userProfile: {
|
|
465
|
+
profilePicture: () => {
|
|
466
|
+
needs: {
|
|
467
|
+
profilePicture: true;
|
|
468
|
+
};
|
|
469
|
+
compute(profile: {
|
|
470
|
+
profilePicture: string | null;
|
|
471
|
+
}): string | null;
|
|
472
|
+
};
|
|
473
|
+
profilePictureThumbnail: () => {
|
|
474
|
+
needs: {
|
|
475
|
+
profilePictureThumbnail: true;
|
|
476
|
+
};
|
|
477
|
+
compute(profile: {
|
|
478
|
+
profilePictureThumbnail: string | null;
|
|
479
|
+
}): string | null;
|
|
480
|
+
};
|
|
481
|
+
};
|
|
482
|
+
};
|
|
483
|
+
model: {};
|
|
484
|
+
query: {};
|
|
485
|
+
client: {};
|
|
486
|
+
}, {}>, "Class", "update", never> & import("@prisma/client/runtime/library.js").PrismaPromise<{
|
|
487
|
+
id: string;
|
|
488
|
+
_count: {
|
|
489
|
+
teachers: number;
|
|
490
|
+
students: number;
|
|
491
|
+
};
|
|
492
|
+
}>;
|
|
493
|
+
export declare function listActiveSchoolMemberships(schoolId: string, userIds: string[]): import("@prisma/client/runtime/library.js").PrismaPromise<{
|
|
494
|
+
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
495
|
+
userId: string;
|
|
496
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
497
|
+
}[]>;
|
|
306
498
|
export declare function listSchoolClasses(schoolId: string): import("@prisma/client/runtime/library.js").PrismaPromise<({
|
|
307
499
|
teachers: {
|
|
308
500
|
id: string;
|
|
@@ -334,6 +526,7 @@ export declare function listSchoolClasses(schoolId: string): import("@prisma/cli
|
|
|
334
526
|
discussionsEnabled: boolean;
|
|
335
527
|
studentsCanCreateDiscussions: boolean;
|
|
336
528
|
studentsCanReply: boolean;
|
|
529
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
337
530
|
treatMissingAsZero: boolean;
|
|
338
531
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
339
532
|
})[]>;
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAIpE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAI1E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAI/E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"school.d.ts","sourceRoot":"/","sources":["models/school.ts"],"names":[],"mappings":"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"}
|
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]="b2c84653-09cd-50ad-b184-666010ad816e")}catch(e){}}();
|
|
3
3
|
import { prisma } from "../lib/prisma.js";
|
|
4
4
|
const memberSelect = {
|
|
5
5
|
id: true,
|
|
@@ -49,6 +49,8 @@ export function listUserSchoolMemberships(userId) {
|
|
|
49
49
|
subdomain: true,
|
|
50
50
|
logoId: true,
|
|
51
51
|
logo: { select: { id: true, path: true, type: true } },
|
|
52
|
+
letterheadFileId: true,
|
|
53
|
+
letterhead: { select: { id: true, path: true, type: true, name: true } },
|
|
52
54
|
createdAt: true,
|
|
53
55
|
updatedAt: true,
|
|
54
56
|
},
|
|
@@ -88,6 +90,8 @@ export function getSchoolById(schoolId) {
|
|
|
88
90
|
subdomain: true,
|
|
89
91
|
logoId: true,
|
|
90
92
|
logo: { select: { id: true, name: true, type: true, path: true } },
|
|
93
|
+
letterheadFileId: true,
|
|
94
|
+
letterhead: { select: { id: true, name: true, type: true, path: true } },
|
|
91
95
|
createdAt: true,
|
|
92
96
|
updatedAt: true,
|
|
93
97
|
},
|
|
@@ -103,6 +107,7 @@ export function updateSchoolRecord(schoolId, data) {
|
|
|
103
107
|
description: true,
|
|
104
108
|
subdomain: true,
|
|
105
109
|
logoId: true,
|
|
110
|
+
letterheadFileId: true,
|
|
106
111
|
},
|
|
107
112
|
});
|
|
108
113
|
}
|
|
@@ -151,6 +156,79 @@ export function getSchoolOverview(schoolId) {
|
|
|
151
156
|
},
|
|
152
157
|
});
|
|
153
158
|
}
|
|
159
|
+
export function listRecentSchoolMembers(schoolId, take = 5) {
|
|
160
|
+
return prisma.schoolMembership.findMany({
|
|
161
|
+
where: { schoolId, status: "ACTIVE" },
|
|
162
|
+
select: memberSelect,
|
|
163
|
+
orderBy: { createdAt: "desc" },
|
|
164
|
+
take,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
export function getSchoolMemberDetail(schoolId, memberUserId) {
|
|
168
|
+
return prisma.schoolMembership.findUnique({
|
|
169
|
+
where: { schoolId_userId: { schoolId, userId: memberUserId } },
|
|
170
|
+
select: memberSelect,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
const memberClassSelect = {
|
|
174
|
+
id: true,
|
|
175
|
+
name: true,
|
|
176
|
+
section: true,
|
|
177
|
+
subject: true,
|
|
178
|
+
color: true,
|
|
179
|
+
_count: { select: { teachers: true, students: true } },
|
|
180
|
+
};
|
|
181
|
+
export function listMemberClasses(schoolId, memberUserId) {
|
|
182
|
+
return prisma.$transaction([
|
|
183
|
+
prisma.class.findMany({
|
|
184
|
+
where: { schoolId, teachers: { some: { id: memberUserId } } },
|
|
185
|
+
select: memberClassSelect,
|
|
186
|
+
orderBy: { name: "asc" },
|
|
187
|
+
}),
|
|
188
|
+
prisma.class.findMany({
|
|
189
|
+
where: { schoolId, students: { some: { id: memberUserId } } },
|
|
190
|
+
select: memberClassSelect,
|
|
191
|
+
orderBy: { name: "asc" },
|
|
192
|
+
}),
|
|
193
|
+
]);
|
|
194
|
+
}
|
|
195
|
+
export function findSchoolClass(schoolId, classId) {
|
|
196
|
+
return prisma.class.findFirst({
|
|
197
|
+
where: { id: classId, schoolId },
|
|
198
|
+
select: { id: true, name: true },
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
export function deleteSchoolClassRecord(schoolId, classId) {
|
|
202
|
+
return prisma.class.delete({
|
|
203
|
+
where: { id: classId, schoolId },
|
|
204
|
+
select: { id: true },
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
export function updateSchoolClassMembers(classId, data) {
|
|
208
|
+
return prisma.class.update({
|
|
209
|
+
where: { id: classId },
|
|
210
|
+
data: {
|
|
211
|
+
teachers: {
|
|
212
|
+
connect: data.addTeacherIds.map((id) => ({ id })),
|
|
213
|
+
disconnect: data.removeTeacherIds.map((id) => ({ id })),
|
|
214
|
+
},
|
|
215
|
+
students: {
|
|
216
|
+
connect: data.addStudentIds.map((id) => ({ id })),
|
|
217
|
+
disconnect: data.removeStudentIds.map((id) => ({ id })),
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
select: {
|
|
221
|
+
id: true,
|
|
222
|
+
_count: { select: { teachers: true, students: true } },
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
export function listActiveSchoolMemberships(schoolId, userIds) {
|
|
227
|
+
return prisma.schoolMembership.findMany({
|
|
228
|
+
where: { schoolId, userId: { in: userIds }, status: "ACTIVE" },
|
|
229
|
+
select: { userId: true, role: true, status: true },
|
|
230
|
+
});
|
|
231
|
+
}
|
|
154
232
|
export function listSchoolClasses(schoolId) {
|
|
155
233
|
return prisma.class.findMany({
|
|
156
234
|
where: { schoolId },
|
|
@@ -316,4 +394,4 @@ export function acceptSchoolInvite(inviteId, userId) {
|
|
|
316
394
|
});
|
|
317
395
|
}
|
|
318
396
|
//# sourceMappingURL=school.js.map
|
|
319
|
-
//# debugId=
|
|
397
|
+
//# debugId=b2c84653-09cd-50ad-b184-666010ad816e
|
|
@@ -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 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"}
|
|
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 letterheadFileId: true,\n letterhead: { select: { id: true, path: true, type: true, name: 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 letterheadFileId: true,\n letterhead: { 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 letterheadFileId?: 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 letterheadFileId: 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 listRecentSchoolMembers(schoolId: string, take = 5) {\n return prisma.schoolMembership.findMany({\n where: { schoolId, status: \"ACTIVE\" },\n select: memberSelect,\n orderBy: { createdAt: \"desc\" },\n take,\n });\n}\n\nexport function getSchoolMemberDetail(schoolId: string, memberUserId: string) {\n return prisma.schoolMembership.findUnique({\n where: { schoolId_userId: { schoolId, userId: memberUserId } },\n select: memberSelect,\n });\n}\n\nconst memberClassSelect = {\n id: true,\n name: true,\n section: true,\n subject: true,\n color: true,\n _count: { select: { teachers: true, students: true } },\n} as const;\n\nexport function listMemberClasses(schoolId: string, memberUserId: string) {\n return prisma.$transaction([\n prisma.class.findMany({\n where: { schoolId, teachers: { some: { id: memberUserId } } },\n select: memberClassSelect,\n orderBy: { name: \"asc\" },\n }),\n prisma.class.findMany({\n where: { schoolId, students: { some: { id: memberUserId } } },\n select: memberClassSelect,\n orderBy: { name: \"asc\" },\n }),\n ]);\n}\n\nexport function findSchoolClass(schoolId: string, classId: string) {\n return prisma.class.findFirst({\n where: { id: classId, schoolId },\n select: { id: true, name: true },\n });\n}\n\nexport function deleteSchoolClassRecord(schoolId: string, classId: string) {\n return prisma.class.delete({\n where: { id: classId, schoolId },\n select: { id: true },\n });\n}\n\nexport function updateSchoolClassMembers(\n classId: string,\n data: {\n addTeacherIds: string[];\n removeTeacherIds: string[];\n addStudentIds: string[];\n removeStudentIds: string[];\n }\n) {\n return prisma.class.update({\n where: { id: classId },\n data: {\n teachers: {\n connect: data.addTeacherIds.map((id) => ({ id })),\n disconnect: data.removeTeacherIds.map((id) => ({ id })),\n },\n students: {\n connect: data.addStudentIds.map((id) => ({ id })),\n disconnect: data.removeStudentIds.map((id) => ({ id })),\n },\n },\n select: {\n id: true,\n _count: { select: { teachers: true, students: true } },\n },\n });\n}\n\nexport function listActiveSchoolMemberships(schoolId: string, userIds: string[]) {\n return prisma.schoolMembership.findMany({\n where: { schoolId, userId: { in: userIds }, status: \"ACTIVE\" },\n select: { userId: true, role: true, status: true },\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":"b2c84653-09cd-50ad-b184-666010ad816e"}
|
package/dist/models/section.d.ts
CHANGED
|
@@ -68,6 +68,7 @@ export declare function findClassWithTeacher(classId: string, teacherId: string)
|
|
|
68
68
|
discussionsEnabled: boolean;
|
|
69
69
|
studentsCanCreateDiscussions: boolean;
|
|
70
70
|
studentsCanReply: boolean;
|
|
71
|
+
sidebarFeatures: import("@prisma/client/runtime/library.js").JsonValue | null;
|
|
71
72
|
treatMissingAsZero: boolean;
|
|
72
73
|
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
73
74
|
} | null>;
|
|
@@ -202,6 +203,9 @@ export declare function updateAssignmentOrder(id: string, order: number): import
|
|
|
202
203
|
order: number | null;
|
|
203
204
|
gradingBoundaryId: string | null;
|
|
204
205
|
gradeCategoryId: string | null;
|
|
206
|
+
timeLimitMinutes: number | null;
|
|
207
|
+
singleAttempt: boolean;
|
|
208
|
+
allowLateSubmissions: boolean;
|
|
205
209
|
}>;
|
|
206
210
|
/** Update section name and color. */
|
|
207
211
|
export declare function updateSection(id: string, data: {
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAIzC;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAIzC;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAOtE;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;;;;;;;;;;;;;;;;;;;;;;;;;;;UAKzE"}
|