89 lines
1.7 KiB
Plaintext
89 lines
1.7 KiB
Plaintext
|
generator client {
|
||
|
provider = "prisma-client-js"
|
||
|
}
|
||
|
|
||
|
datasource db {
|
||
|
provider = "mysql"
|
||
|
url = env("DATABASE_URL")
|
||
|
relationMode = "prisma"
|
||
|
}
|
||
|
|
||
|
model Profile {
|
||
|
id String @id @default(uuid())
|
||
|
userId String @unique
|
||
|
name String
|
||
|
imageURL String @db.Text
|
||
|
email String @db.Text
|
||
|
|
||
|
servers Server []
|
||
|
members Member []
|
||
|
channels Channel []
|
||
|
|
||
|
createdAt DateTime @default(now())
|
||
|
UpdatedAt DateTime @updatedAt
|
||
|
}
|
||
|
|
||
|
model Server {
|
||
|
id String @id @default(uuid())
|
||
|
name String
|
||
|
imageURL String @db.Text
|
||
|
inviteCode String @db.Text
|
||
|
|
||
|
profileId String
|
||
|
profile Profile @relation(fields: [profileId], references: [id], onDelete: Cascade)
|
||
|
|
||
|
members Member[]
|
||
|
channel Channel []
|
||
|
|
||
|
createdAt DateTime @default(now())
|
||
|
updatedAt DateTime @updatedAt
|
||
|
|
||
|
@@index([profileId])
|
||
|
}
|
||
|
|
||
|
enum MemberRole {
|
||
|
ADMIN
|
||
|
MODERATOR
|
||
|
GUEST
|
||
|
}
|
||
|
|
||
|
model Member {
|
||
|
id String @id @default(uuid())
|
||
|
role MemberRole @default(GUEST)
|
||
|
|
||
|
profileId String
|
||
|
profile Profile @relation(fields: [profileId], references: [id], onDelete: Cascade)
|
||
|
|
||
|
serverId String
|
||
|
server Server @relation(fields: [serverId], references: [id], onDelete: Cascade)
|
||
|
|
||
|
createdAt DateTime @default(now())
|
||
|
updatedAt DateTime @updatedAt
|
||
|
|
||
|
@@index([profileId])
|
||
|
@@index([serverId])
|
||
|
}
|
||
|
|
||
|
enum ChannelType {
|
||
|
TEXT
|
||
|
AUDIO
|
||
|
VIDEO
|
||
|
}
|
||
|
|
||
|
model Channel {
|
||
|
id String @id @default(uuid())
|
||
|
name String
|
||
|
type ChannelType @default(TEXT)
|
||
|
|
||
|
profileId String
|
||
|
profile Profile @relation(fields: [profileId], references: [id], onDelete: Cascade)
|
||
|
|
||
|
serverId String
|
||
|
server Server @relation(fields: [serverId], references: [id], onDelete: Cascade)
|
||
|
|
||
|
createdAt DateTime @default(now())
|
||
|
updatedAt DateTime @updatedAt
|
||
|
|
||
|
@@index([profileId])
|
||
|
@@index([serverId])
|
||
|
}
|