75 lines
1.4 KiB
Plaintext
75 lines
1.4 KiB
Plaintext
|
generator client {
|
||
|
provider = "prisma-client-js"
|
||
|
}
|
||
|
|
||
|
datasource db {
|
||
|
provider = "postgresql"
|
||
|
url = env("DATABASE_URL")
|
||
|
}
|
||
|
|
||
|
model User {
|
||
|
id String @id @default(cuid())
|
||
|
email String
|
||
|
password String
|
||
|
|
||
|
organization Organization? @relation(fields: [organizationId], references: [id])
|
||
|
organizationId String?
|
||
|
|
||
|
purchasedCourses Course[]
|
||
|
}
|
||
|
|
||
|
model Teacher {
|
||
|
id String @id @default(cuid())
|
||
|
username String @unique
|
||
|
first_name String
|
||
|
last_name String
|
||
|
email String @unique
|
||
|
password String
|
||
|
|
||
|
organizations Organization[]
|
||
|
created_at DateTime @default(now())
|
||
|
updated_at DateTime @updatedAt
|
||
|
}
|
||
|
|
||
|
model Organization {
|
||
|
id String @id @default(cuid())
|
||
|
name String @unique
|
||
|
|
||
|
teacherId String
|
||
|
teacher Teacher @relation(fields: [teacherId], references: [id])
|
||
|
|
||
|
courses Course[]
|
||
|
|
||
|
users User[]
|
||
|
}
|
||
|
|
||
|
model Course {
|
||
|
id String @id @default(cuid())
|
||
|
name String
|
||
|
price Int
|
||
|
|
||
|
organization Organization @relation(fields: [organizationId], references: [id])
|
||
|
organizationId String
|
||
|
|
||
|
lessons Lesson[]
|
||
|
users User[]
|
||
|
|
||
|
@@unique([name, organizationId])
|
||
|
}
|
||
|
|
||
|
model Lesson {
|
||
|
id String @id @default(cuid())
|
||
|
name String
|
||
|
description String
|
||
|
type LessonTypes
|
||
|
|
||
|
course Course @relation(fields: [courseId], references: [id])
|
||
|
courseId String
|
||
|
}
|
||
|
|
||
|
enum LessonTypes {
|
||
|
VIDEO
|
||
|
AUDIO
|
||
|
TEXT
|
||
|
}
|