Created
December 16, 2024 07:47
-
-
Save drifterz13/133d16d9b8a1bd4b7886cffb6e549557 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| enum Gender { | |
| MALE | |
| FEMALE | |
| OTHER | |
| } | |
| enum CreditSource { | |
| INTERNAL | |
| EXTERNAL | |
| } | |
| enum TransferStatus { | |
| PENDING | |
| APPROVED | |
| REJECTED | |
| } | |
| model School { | |
| id Int @id @default(autoincrement()) | |
| name String | |
| students Student[] | |
| subjects Subject[] | |
| teachers Teacher[] | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@map("schools") | |
| } | |
| model Student { | |
| id Int @id @default(autoincrement()) | |
| citizenId String @unique | |
| birthDate DateTime | |
| gender Gender | |
| gpax Float | |
| userId Int @unique | |
| user User @relation(fields: [userId], references: [id]) | |
| schoolId Int | |
| school School @relation(fields: [schoolId], references: [id]) | |
| enrollments Enrollment[] | |
| creditTransferRequests CreditTransferRequest[] | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@index([schoolId]) | |
| @@map("students") | |
| } | |
| model Subject { | |
| id Int @id @default(autoincrement()) | |
| code String @unique | |
| title String | |
| gradeLevel Int | |
| credit Float | |
| schoolId Int | |
| school School @relation(fields: [schoolId], references: [id]) | |
| enrollments Enrollment[] | |
| subjectMappings SubjectMapping[] | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| CreditTransferRequestSubject CreditTransferRequestSubject[] | |
| @@index([schoolId]) | |
| @@map("subjects") | |
| } | |
| model Enrollment { | |
| id Int @id @default(autoincrement()) | |
| studentId Int | |
| student Student @relation(fields: [studentId], references: [id]) | |
| subjectId Int | |
| subject Subject @relation(fields: [subjectId], references: [id]) | |
| gpa Float | |
| creditSource CreditSource | |
| transferredEnrollmentId Int? // Allows linking to a transferred enrollment | |
| transferredEnrollment Enrollment? @relation("TransferredEnrollment", fields: [transferredEnrollmentId], references: [id]) | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| Enrollment Enrollment[] | |
| @@index([studentId]) | |
| @@index([subjectId]) | |
| @@map("enrollments") | |
| } | |
| model CreditTransferRequest { | |
| id Int @id @default(autoincrement()) | |
| studentId Int | |
| student Student @relation(fields: [studentId], references: [id]) | |
| reviews CreditTransferReview[] | |
| requestedSubjects CreditTransferRequestSubject[] | |
| status TransferStatus @default(PENDING) | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@map("credit_transfer_requests") | |
| } | |
| model CreditTransferReview { | |
| id Int @id @default(autoincrement()) | |
| requestId Int | |
| creditTransferRequest CreditTransferRequest @relation(fields: [requestId], references: [id]) | |
| teacherId Int | |
| teacher Teacher @relation(fields: [teacherId], references: [id]) | |
| mappedSubjects SubjectMapping[] | |
| comments String? | |
| reviewStage Int | |
| isFinalReview Boolean @default(false) | |
| status TransferStatus @default(PENDING) | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@map("credit_transfer_reviews") | |
| } | |
| model Teacher { | |
| id Int @id @default(autoincrement()) | |
| userId Int @unique | |
| user User @relation(fields: [userId], references: [id]) | |
| schoolId Int | |
| school School @relation(fields: [schoolId], references: [id]) | |
| creditTransferReviews CreditTransferReview[] | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@index([schoolId]) | |
| @@map("teachers") | |
| } | |
| model SubjectMapping { | |
| id Int @id @default(autoincrement()) | |
| sourceSubjectId Int | |
| sourceSubject Subject @relation(fields: [sourceSubjectId], references: [id]) | |
| destinationSubjectId Int | |
| destinationSubject Subject @relation(fields: [destinationSubjectId], references: [id]) | |
| creditTransferReviewId Int | |
| creditTransferReview CreditTransferReview @relation(fields: [creditTransferReviewId], references: [id]) | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@map("subject_mappings") | |
| } | |
| model CreditTransferRequestSubject { | |
| id Int @id @default(autoincrement()) | |
| requestId Int | |
| creditTransferRequest CreditTransferRequest @relation(fields: [requestId], references: [id]) | |
| subjectId Int | |
| subject Subject @relation(fields: [subjectId], references: [id]) | |
| isTransferred Boolean @default(false) | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@map("credit_transfer_request_subjects") | |
| } | |
| model User { | |
| id Int @id @default(autoincrement()) | |
| email String @unique | |
| name String | |
| students Student? | |
| teachers Teacher? | |
| createdAt DateTime @default(now()) | |
| updatedAt DateTime @updatedAt | |
| @@map("users") | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment