Update 1 file

This commit is contained in:
[dyad] committed 2026-08-03 01:23:03 +02:00
1 parent 5d0496f6f6
commit 3eb29b3ef7
1 file changed
+103 -103
+103 -103
View File
@@ -283,7 +283,7 @@ model SchoolYear {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
classGroups ClassGroup[] classGroups ClassGroup[]
enrollments Enrollment[] enrollments Enrollment[]
computedGrades ComputedGrade[] computedGrades ComputedGrade[]
@@ -302,7 +302,7 @@ model ClassGroup {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id]) schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id])
responsibleTeacher User? @relation("ResponsibleTeacher", fields: [responsibleTeacherId], references: [id]) responsibleTeacher User? @relation("ResponsibleTeacher", fields: [responsibleTeacherId], references: [id])
teachers ClassGroupTeacher[] teachers ClassGroupTeacher[]
@@ -362,7 +362,7 @@ model Student {
deletedAt DateTime? deletedAt DateTime?
user User? @relation(fields: [userId], references: [id]) user User? @relation(fields: [userId], references: [id])
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
enrollments Enrollment[] enrollments Enrollment[]
learningProgressEntries LearningProgressEntry[] learningProgressEntries LearningProgressEntry[]
assessmentResults AssessmentResult[] assessmentResults AssessmentResult[]
@@ -411,7 +411,7 @@ model Enrollment {
endDate DateTime? // null = still enrolled endDate DateTime? // null = still enrolled
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id]) schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id])
} }
@@ -521,7 +521,7 @@ model ClassCompetencyAssignment {
schoolYearId String schoolYearId String
clonedTemplateId String? // if customized, points to the school's cloned copy clonedTemplateId String? // if customized, points to the school's cloned copy
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
subject Subject @relation(fields: [subjectId], references: [id]) subject Subject @relation(fields: [subjectId], references: [id])
competencyTemplate CompetencyTemplate @relation(fields: [competencyTemplateId], references: [id]) competencyTemplate CompetencyTemplate @relation(fields: [competencyTemplateId], references: [id])
@@ -545,7 +545,7 @@ model LearningProgressEntry {
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
competency Competency @relation(fields: [competencyId], references: [id]) competency Competency @relation(fields: [competencyId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
} }
model Assessment { model Assessment {
@@ -561,7 +561,7 @@ model Assessment {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
subject Subject @relation(fields: [subjectId], references: [id]) subject Subject @relation(fields: [subjectId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
assessmentCompetencyLinks AssessmentCompetencyLink[] assessmentCompetencyLinks AssessmentCompetencyLink[]
@@ -645,7 +645,7 @@ model ComputedGrade {
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
subject Subject @relation(fields: [subjectId], references: [id]) subject Subject @relation(fields: [subjectId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id]) schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id])
} }
@@ -673,7 +673,7 @@ model Report {
publishedAt DateTime? // publish timestamp publishedAt DateTime? // publish timestamp
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id]) schoolYear SchoolYear @relation(fields: [schoolYearId], references: [id])
generatedByUser User @relation(fields: [generatedByUserId], references: [id]) generatedByUser User @relation(fields: [generatedByUserId], references: [id])
sections ReportSection[] sections ReportSection[]
@@ -692,7 +692,7 @@ model ReportCardTemplate {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
reports Report[] reports Report[]
} }
@@ -759,7 +759,7 @@ model AttendanceSession {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
records AttendanceRecord[] records AttendanceRecord[]
@@ -822,7 +822,7 @@ model LessonPlan {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
@@index([teacherId]) @@index([teacherId])
@@ -884,7 +884,7 @@ model ParentMessage {
model BehaviorCategory { model BehaviorCategory {
id String @id @default(cuid()) id String @id @default(cuid())
schoolId String schoolId String
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
name String name String
color String // hex color, e.g. "#10b981" color String // hex color, e.g. "#10b981"
valence String // "positive" | "negative" | "neutral" valence String // "positive" | "negative" | "neutral"
@@ -907,7 +907,7 @@ model BehaviorIncident {
classGroupId String? classGroupId String?
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
schoolId String schoolId String
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
categoryId String categoryId String
category BehaviorCategory @relation(fields: [categoryId], references: [id]) category BehaviorCategory @relation(fields: [categoryId], references: [id])
date DateTime date DateTime
@@ -935,7 +935,7 @@ model BehaviorIncident {
model Rubric { model Rubric {
id String @id @default(cuid()) id String @id @default(cuid())
schoolId String schoolId String
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
teacherId String teacherId String
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
subjectId String? subjectId String?
@@ -993,7 +993,7 @@ model RubricLevel {
model CommentCategory { model CommentCategory {
id String @id @default(cuid()) id String @id @default(cuid())
schoolId String schoolId String
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
name String name String
color String // hex color color String // hex color
icon String? // emoji icon String? // emoji
@@ -1009,7 +1009,7 @@ model CommentCategory {
model CommentBankEntry { model CommentBankEntry {
id String @id @default(cuid()) id String @id @default(cuid())
schoolId String schoolId String
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
teacherId String teacherId String
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
categoryId String categoryId String
@@ -1054,7 +1054,7 @@ model Notebook {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
owner User @relation(fields: [ownerId], references: [id]) owner User @relation(fields: [ownerId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -1120,7 +1120,7 @@ model Drawing {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
owner User @relation(fields: [ownerId], references: [id]) owner User @relation(fields: [ownerId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -1147,7 +1147,7 @@ model Notification {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@index([userId, isRead]) @@index([userId, isRead])
@@ -1179,7 +1179,7 @@ model CalendarEvent {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -1211,7 +1211,7 @@ model ParentStudentLink {
parent User @relation(fields: [parentId], references: [id]) parent User @relation(fields: [parentId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@unique([parentId, studentId]) @@unique([parentId, studentId])
@@map("parent_student_links") @@map("parent_student_links")
@@ -1234,7 +1234,7 @@ model CurriculumStandard {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
competencyLinks CurriculumStandardLink[] competencyLinks CurriculumStandardLink[]
@@ -1293,7 +1293,7 @@ model BehaviorIntervention {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
incident BehaviorIncident? @relation(fields: [incidentId], references: [id]) incident BehaviorIncident? @relation(fields: [incidentId], references: [id])
assignedUser User? @relation("InterventionAssignee", fields: [assignedTo], references: [id]) assignedUser User? @relation("InterventionAssignee", fields: [assignedTo], references: [id])
@@ -1327,7 +1327,7 @@ model ReportSchedule {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@index([schoolId, isActive]) @@index([schoolId, isActive])
@@ -1373,8 +1373,8 @@ model Homework {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
submissions HomeworkSubmission[] submissions HomeworkSubmission[]
@@ -1426,7 +1426,7 @@ model Announcement {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
author User @relation(fields: [authorId], references: [id]) author User @relation(fields: [authorId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
reads AnnouncementRead[] reads AnnouncementRead[]
@@ -1469,7 +1469,7 @@ model NotificationPreferences {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade) user User @relation(fields: [userId], references: [id], onDelete: Cascade)
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@index([userId]) @@index([userId])
@@map("notification_preferences") @@map("notification_preferences")
@@ -1493,7 +1493,7 @@ model SelfAssessment {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
competency Competency @relation(fields: [competencyId], references: [id]) competency Competency @relation(fields: [competencyId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -1522,7 +1522,7 @@ model LearningGoal {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
competency Competency? @relation(fields: [competencyId], references: [id]) competency Competency? @relation(fields: [competencyId], references: [id])
selfAssessments SelfAssessment[] selfAssessments SelfAssessment[]
@@ -1552,7 +1552,7 @@ model PortfolioEntry {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
competency Competency? @relation(fields: [competencyId], references: [id]) competency Competency? @relation(fields: [competencyId], references: [id])
@@ -1579,8 +1579,8 @@ model TimetableSlot {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
teacher User? @relation(fields: [teacherId], references: [id]) teacher User? @relation(fields: [teacherId], references: [id])
@@ -1611,7 +1611,7 @@ model Resource {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
author User @relation(fields: [authorId], references: [id]) author User @relation(fields: [authorId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -1634,7 +1634,7 @@ model EmailTemplate {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@unique([schoolId, name]) @@unique([schoolId, name])
@@map("email_templates") @@map("email_templates")
@@ -1653,7 +1653,7 @@ model EmailLog {
error String? error String?
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@index([schoolId, status]) @@index([schoolId, status])
@@map("email_logs") @@map("email_logs")
@@ -1680,7 +1680,7 @@ model PeerAssessmentSession {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
teacher User? @relation("PeerAssessmentTeacher", fields: [teacherId], references: [id]) teacher User? @relation("PeerAssessmentTeacher", fields: [teacherId], references: [id])
classGroup ClassGroup? @relation("PeerAssessmentClassGroup", fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation("PeerAssessmentClassGroup", fields: [classGroupId], references: [id])
peerAssessments PeerAssessment[] peerAssessments PeerAssessment[]
@@ -1710,7 +1710,7 @@ model PeerAssessment {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
session PeerAssessmentSession? @relation(fields: [sessionId], references: [id]) session PeerAssessmentSession? @relation(fields: [sessionId], references: [id])
assessor Student @relation("PeerAssessor", fields: [assessorId], references: [id]) assessor Student @relation("PeerAssessor", fields: [assessorId], references: [id])
assessed Student @relation("PeerAssessed", fields: [assessedId], references: [id]) assessed Student @relation("PeerAssessed", fields: [assessedId], references: [id])
@@ -1744,7 +1744,7 @@ model EmergencyContact {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
@@index([schoolId, studentId]) @@index([schoolId, studentId])
@@ -1782,7 +1782,7 @@ model SchoolEvent {
status String @default("draft") // draft, published, cancelled, completed status String @default("draft") // draft, published, cancelled, completed
feedbackForm String? // JSON: feedback questions feedbackForm String? // JSON: feedback questions
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
organizer User? @relation(fields: [organizerId], references: [id]) organizer User? @relation(fields: [organizerId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
registrations EventRegistration[] registrations EventRegistration[]
@@ -1844,7 +1844,7 @@ model StudentTransport {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
route TransportRoute? @relation(fields: [routeId], references: [id]) route TransportRoute? @relation(fields: [routeId], references: [id])
@@ -1867,7 +1867,7 @@ model TransportRoute {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
stops TransportStop[] stops TransportStop[]
assignments StudentTransport[] assignments StudentTransport[]
@@ -1915,7 +1915,7 @@ model HealthRecord {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
@@unique([schoolId, studentId]) @@unique([schoolId, studentId])
@@ -1940,7 +1940,7 @@ model Badge {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
studentBadges StudentBadge[] studentBadges StudentBadge[]
@@index([schoolId, category]) @@index([schoolId, category])
@@ -1958,7 +1958,7 @@ model StudentBadge {
isDemo Boolean @default(false) isDemo Boolean @default(false)
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
badge Badge @relation(fields: [badgeId], references: [id]) badge Badge @relation(fields: [badgeId], references: [id])
awardedByUser User? @relation(fields: [awardedBy], references: [id]) awardedByUser User? @relation(fields: [awardedBy], references: [id])
@@ -1994,7 +1994,7 @@ model Competition {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
createdBy User @relation(fields: [createdById], references: [id]) createdBy User @relation(fields: [createdById], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
participants CompetitionParticipant[] participants CompetitionParticipant[]
@@ -2088,7 +2088,7 @@ model RewardClaim {
isDemo Boolean @default(false) isDemo Boolean @default(false)
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
competition Competition @relation(fields: [competitionId], references: [id]) competition Competition @relation(fields: [competitionId], references: [id])
reward CompetitionReward @relation(fields: [rewardId], references: [id]) reward CompetitionReward @relation(fields: [rewardId], references: [id])
@@ -2128,7 +2128,7 @@ model Newsletter {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
author User @relation(fields: [authorId], references: [id]) author User @relation(fields: [authorId], references: [id])
@@index([schoolId, isPublished, publishedAt]) @@index([schoolId, isPublished, publishedAt])
@@ -2154,7 +2154,7 @@ model SubjectTopic {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
subject Subject @relation(fields: [subjectId], references: [id]) subject Subject @relation(fields: [subjectId], references: [id])
lessons SubjectLesson[] lessons SubjectLesson[]
@@ -2243,7 +2243,7 @@ model Reward {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
redemptions RewardRedemption[] redemptions RewardRedemption[]
@@index([schoolId]) @@index([schoolId])
@@ -2281,7 +2281,7 @@ model RewardPoints {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@index([userId]) @@index([userId])
@@index([schoolId]) @@index([schoolId])
@@ -2322,7 +2322,7 @@ model SubjectCategory {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
contents SubjectContent[] contents SubjectContent[]
@@index([schoolId]) @@index([schoolId])
@@ -2351,7 +2351,7 @@ model SubjectContent {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
category SubjectCategory @relation(fields: [categoryId], references: [id]) category SubjectCategory @relation(fields: [categoryId], references: [id])
parent SubjectContent? @relation("ContentHierarchy", fields: [parentId], references: [id]) parent SubjectContent? @relation("ContentHierarchy", fields: [parentId], references: [id])
children SubjectContent[] @relation("ContentHierarchy") children SubjectContent[] @relation("ContentHierarchy")
@@ -2381,7 +2381,7 @@ model ContentChangeRequest {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
content SubjectContent @relation(fields: [contentId], references: [id]) content SubjectContent @relation(fields: [contentId], references: [id])
requester User @relation("ContentRequester", fields: [requestedBy], references: [id]) requester User @relation("ContentRequester", fields: [requestedBy], references: [id])
reviewer User? @relation("ContentReviewer", fields: [reviewedBy], references: [id]) reviewer User? @relation("ContentReviewer", fields: [reviewedBy], references: [id])
@@ -2426,7 +2426,7 @@ model AISettings {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@map("ai_settings") @@map("ai_settings")
} }
@@ -2448,7 +2448,7 @@ model VirtualCharacter {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@index([userId]) @@index([userId])
@@index([schoolId]) @@index([schoolId])
@@ -2469,7 +2469,7 @@ model ChatMessage {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
room CommunicationRoom? @relation(fields: [roomId], references: [id]) room CommunicationRoom? @relation(fields: [roomId], references: [id])
@@index([userId]) @@index([userId])
@@ -2509,7 +2509,7 @@ model IllnessReport {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
reporter User @relation(fields: [reportedBy], references: [id]) reporter User @relation(fields: [reportedBy], references: [id])
approver User? @relation("IllnessApprover", fields: [parentApprovedBy], references: [id]) approver User? @relation("IllnessApprover", fields: [parentApprovedBy], references: [id])
@@ -2547,7 +2547,7 @@ model CommunicationRoom {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student User @relation("RoomStudent", fields: [studentId], references: [id]) student User @relation("RoomStudent", fields: [studentId], references: [id])
teacher User @relation("RoomTeacher", fields: [teacherId], references: [id]) teacher User @relation("RoomTeacher", fields: [teacherId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -2618,7 +2618,7 @@ model CounselingAppointment {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
counselor User @relation("Counselor", fields: [counselorId], references: [id]) counselor User @relation("Counselor", fields: [counselorId], references: [id])
student User @relation("CounselingStudent", fields: [studentId], references: [id]) student User @relation("CounselingStudent", fields: [studentId], references: [id])
@@ -2641,7 +2641,7 @@ model DisciplinaryCommittee {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
members DisciplinaryCommitteeMember[] members DisciplinaryCommitteeMember[]
cases DisciplinaryCase[] cases DisciplinaryCase[]
@@ -2716,7 +2716,7 @@ model AITestGeneration {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
assessment Assessment? @relation(fields: [assessmentId], references: [id]) assessment Assessment? @relation(fields: [assessmentId], references: [id])
student User? @relation(fields: [studentId], references: [id]) student User? @relation(fields: [studentId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -2743,7 +2743,7 @@ model TeacherGradingReview {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
assessment Assessment @relation(fields: [assessmentId], references: [id]) assessment Assessment @relation(fields: [assessmentId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
comments GradingReviewComment[] comments GradingReviewComment[]
@@ -2795,7 +2795,7 @@ model GradingAnnotation {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
assessment Assessment @relation(fields: [assessmentId], references: [id]) assessment Assessment @relation(fields: [assessmentId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
result AssessmentResult? @relation(fields: [resultId], references: [id]) result AssessmentResult? @relation(fields: [resultId], references: [id])
@@ -2831,10 +2831,10 @@ model ExamPlan {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
subject Subject @relation(fields: [subjectId], references: [id]) subject Subject @relation(fields: [subjectId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
calendarEvent CalendarEvent? @relation(fields: [calendarEventId], references: [id]) calendarEvent CalendarEvent? @relation(fields: [calendarEventId], references: [id])
assessment Assessment? @relation(fields: [assessmentId], references: [id]) assessment Assessment? @relation(fields: [assessmentId], references: [id])
@@ -2869,7 +2869,7 @@ model StudyPlan {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
sessions StudySession[] sessions StudySession[]
@@ -2902,7 +2902,7 @@ model StudySession {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
studyPlan StudyPlan? @relation(fields: [studyPlanId], references: [id]) studyPlan StudyPlan? @relation(fields: [studyPlanId], references: [id])
subject Subject? @relation(fields: [subjectId], references: [id]) subject Subject? @relation(fields: [subjectId], references: [id])
@@ -2937,7 +2937,7 @@ model LibraryBook {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
checkouts BookCheckout[] checkouts BookCheckout[]
reservations BookReservation[] reservations BookReservation[]
@@ -2967,7 +2967,7 @@ model BookCheckout {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
book LibraryBook @relation(fields: [bookId], references: [id]) book LibraryBook @relation(fields: [bookId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
checkedOutByUser User @relation(fields: [checkedOutBy], references: [id]) checkedOutByUser User @relation(fields: [checkedOutBy], references: [id])
@@ -2993,7 +2993,7 @@ model BookReservation {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
book LibraryBook @relation(fields: [bookId], references: [id]) book LibraryBook @relation(fields: [bookId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@ -3028,8 +3028,8 @@ model SeatingChart {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3053,7 +3053,7 @@ model DataImportJob {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3075,7 +3075,7 @@ model DataExportJob {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3101,7 +3101,7 @@ model WellnessCheckin {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3122,7 +3122,7 @@ model WellnessScore {
academicScore Float? // 0-100 academicScore Float? // 0-100
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3150,7 +3150,7 @@ model CareerProfile {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
goals CareerGoal[] goals CareerGoal[]
appointments CareerAppointment[] appointments CareerAppointment[]
@@ -3196,7 +3196,7 @@ model CareerAppointment {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
profile CareerProfile @relation(fields: [profileId], references: [id], onDelete: Cascade) profile CareerProfile @relation(fields: [profileId], references: [id], onDelete: Cascade)
counselor User @relation(fields: [counselorId], references: [id]) counselor User @relation(fields: [counselorId], references: [id])
@@ -3229,7 +3229,7 @@ model SubstituteTeacher {
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
deletedAt DateTime? deletedAt DateTime?
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User? @relation(fields: [userId], references: [id]) user User? @relation(fields: [userId], references: [id])
assignments SubstitutionAssignment[] assignments SubstitutionAssignment[]
@@ -3257,7 +3257,7 @@ model TeacherAbsence {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
teacher User @relation(fields: [teacherId], references: [id]) teacher User @relation(fields: [teacherId], references: [id])
approver User? @relation("TeacherAbsenceApprover", fields: [approvedBy], references: [id]) approver User? @relation("TeacherAbsenceApprover", fields: [approvedBy], references: [id])
calendarEvent CalendarEvent? @relation("TeacherAbsenceCalendar", fields: [calendarEventId], references: [id]) calendarEvent CalendarEvent? @relation("TeacherAbsenceCalendar", fields: [calendarEventId], references: [id])
@@ -3285,7 +3285,7 @@ model SubstitutionAssignment {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
absence TeacherAbsence @relation(fields: [absenceId], references: [id]) absence TeacherAbsence @relation(fields: [absenceId], references: [id])
substitute SubstituteTeacher @relation(fields: [substituteId], references: [id]) substitute SubstituteTeacher @relation(fields: [substituteId], references: [id])
classGroup ClassGroup? @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup? @relation(fields: [classGroupId], references: [id])
@@ -3314,7 +3314,7 @@ model GradeReport {
fileData String? // Base64 encoded or JSON report data fileData String? // Base64 encoded or JSON report data
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
generator User @relation("GradeReportGenerator", fields: [generatedBy], references: [id]) generator User @relation("GradeReportGenerator", fields: [generatedBy], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3335,7 +3335,7 @@ model DataRetentionPolicy {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
reviewedByUser User? @relation("DataRetentionPolicyReviewer", fields: [reviewedByUserId], references: [id]) reviewedByUser User? @relation("DataRetentionPolicyReviewer", fields: [reviewedByUserId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3353,7 +3353,7 @@ model DpiaRecord {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
approvedByUser User? @relation("DpiaRecordApprover", fields: [approvedByUserId], references: [id]) approvedByUser User? @relation("DpiaRecordApprover", fields: [approvedByUserId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3371,7 +3371,7 @@ model ComplianceConsultation {
notes String? // what was consulted/approved notes String? // what was consulted/approved
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
acknowledgedByUser User @relation("ComplianceConsultationAcknowledger", fields: [acknowledgedByUserId], references: [id]) acknowledgedByUser User @relation("ComplianceConsultationAcknowledger", fields: [acknowledgedByUserId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3389,7 +3389,7 @@ model SchoolComplianceStatus {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
} }
model DeletionFlag { model DeletionFlag {
@@ -3404,7 +3404,7 @@ model DeletionFlag {
deletedAt DateTime? deletedAt DateTime?
reason String // "retention period expired", "erasure request", etc. reason String // "retention period expired", "erasure request", etc.
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
approvedByUser User? @relation("DeletionFlagApprover", fields: [approvedByUserId], references: [id]) approvedByUser User? @relation("DeletionFlagApprover", fields: [approvedByUserId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3430,7 +3430,7 @@ model EmergencySignage {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
messages SignageMessage[] messages SignageMessage[]
schedules SignageSchedule[] schedules SignageSchedule[]
@@ -3458,7 +3458,7 @@ model SignageMessage {
endTime DateTime? endTime DateTime?
displayOrder Int @default(0) displayOrder Int @default(0)
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
signage EmergencySignage @relation(fields: [signageId], references: [id], onDelete: Cascade) signage EmergencySignage @relation(fields: [signageId], references: [id], onDelete: Cascade)
creator User @relation(fields: [createdBy], references: [id]) creator User @relation(fields: [createdBy], references: [id])
audits SignageAuditLog[] audits SignageAuditLog[]
@@ -3482,7 +3482,7 @@ model SignageSchedule {
createdBy String // userId createdBy String // userId
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
signage EmergencySignage @relation(fields: [signageId], references: [id], onDelete: Cascade) signage EmergencySignage @relation(fields: [signageId], references: [id], onDelete: Cascade)
@@index([schoolId]) @@index([schoolId])
@@ -3498,7 +3498,7 @@ model SignageAuditLog {
details String? // JSON: { status, device, error, etc } details String? // JSON: { status, device, error, etc }
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
message SignageMessage @relation(fields: [messageId], references: [id], onDelete: Cascade) message SignageMessage @relation(fields: [messageId], references: [id], onDelete: Cascade)
@@index([schoolId]) @@index([schoolId])
@@ -3527,7 +3527,7 @@ model ExamSession {
suspiciousActivity String? // JSON array of incidents suspiciousActivity String? // JSON array of incidents
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
assessment Assessment @relation(fields: [assessmentId], references: [id]) assessment Assessment @relation(fields: [assessmentId], references: [id])
student Student @relation(fields: [studentId], references: [id]) student Student @relation(fields: [studentId], references: [id])
answers ExamAnswer[] answers ExamAnswer[]
@@ -3612,7 +3612,7 @@ model NotificationHub {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
expiresAt DateTime? // Auto-archive if set expiresAt DateTime? // Auto-archive if set
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3633,7 +3633,7 @@ model NotificationArchive {
category String category String
archivedAt DateTime @default(now()) archivedAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3661,7 +3661,7 @@ model DashboardWidget {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3683,7 +3683,7 @@ model DashboardLayout {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3701,7 +3701,7 @@ model WidgetTemplate {
thumbnail String? // URL to preview image thumbnail String? // URL to preview image
createdAt DateTime @default(now()) createdAt DateTime @default(now())
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@unique([schoolId, widgetType]) @@unique([schoolId, widgetType])
@@index([schoolId]) @@index([schoolId])
@@ -3717,7 +3717,7 @@ model SchoolPolicy {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@map("school_policies") @@map("school_policies")
@@ -3735,7 +3735,7 @@ model EscalationPolicy {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
school School @relation(fields: [schoolId], references: [id]) school School @relation(fields: [schoolId], references: [id])
overridingUser User? @relation(fields: [overriddenByUserId], references: [id]) overridingUser User? @relation(fields: [overriddenByUserId], references: [id])
@@index([schoolId]) @@index([schoolId])
@@ -3753,8 +3753,8 @@ model ClassMessagingLock {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
classGroup ClassGroup @relation(fields: [classGroupId], references: [id]) classGroup ClassGroup @relation(fields: [classGroupId], references: [id])
lockedByUser User @relation(fields: [lockedByUserId], references: [id]) lockedByUser User @relation(fields: [lockedByUserId], references: [id])
@@index([classGroupId]) @@index([classGroupId])
@@index([lockedByUserId]) @@index([lockedByUserId])