feat: initialize AutoTeacher Next.js project structure
This commit is contained in:
75
prisma/schema.prisma
Normal file
75
prisma/schema.prisma
Normal file
@ -0,0 +1,75 @@
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model Course {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
description String?
|
||||
classes Class[]
|
||||
assignments Assignment[]
|
||||
teacherId String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@unique([teacherId, name])
|
||||
@@index([teacherId])
|
||||
}
|
||||
|
||||
model Class {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
description String?
|
||||
courseId Int
|
||||
teacherId String
|
||||
course Course @relation(fields: [courseId], references: [id], onDelete: Cascade)
|
||||
assignments Assignment[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@unique([courseId, name])
|
||||
@@index([teacherId])
|
||||
}
|
||||
|
||||
model Assignment {
|
||||
id Int @id @default(autoincrement())
|
||||
title String
|
||||
description String?
|
||||
courseId Int
|
||||
classroomId Int
|
||||
formSchema Json?
|
||||
teacherId String
|
||||
gradingCriteria String?
|
||||
autoEvaluate Boolean @default(false)
|
||||
course Course @relation(fields: [courseId], references: [id], onDelete: Cascade)
|
||||
classroom Class @relation(fields: [classroomId], references: [id], onDelete: Cascade)
|
||||
submissions Submission[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@unique([classroomId, title])
|
||||
@@index([teacherId])
|
||||
}
|
||||
|
||||
model Submission {
|
||||
id Int @id @default(autoincrement())
|
||||
assignmentId Int
|
||||
studentId String
|
||||
studentName String @default("")
|
||||
originalFilename String
|
||||
fileUrl String
|
||||
fileKey String?
|
||||
submittedAt DateTime @default(now())
|
||||
formPayload Json?
|
||||
evaluationScore Float?
|
||||
evaluationComment String?
|
||||
evaluatedAt DateTime?
|
||||
assignment Assignment @relation(fields: [assignmentId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([assignmentId, studentId])
|
||||
}
|
||||
Reference in New Issue
Block a user