Files
chad/server/prisma/schema.prisma

76 lines
1.8 KiB
Plaintext

datasource db {
provider = "sqlite"
}
generator client {
provider = "prisma-client"
output = "./generated-client"
}
model User {
id String @id @default(cuid())
username String @unique
password String
displayName String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Session Session[]
UserPreferences UserPreferences?
Messages Message[]
}
model Session {
id String @id
userId String
expiresAt DateTime
user User @relation(references: [id], fields: [userId], onDelete: Cascade)
@@index([userId])
}
model UserPreferences {
userId String @id @unique
toggleInputHotkey String? @default("")
toggleOutputHotkey String? @default("")
user User @relation(references: [id], fields: [userId], onDelete: Cascade)
}
model Attachment {
id String @id @default(uuid())
name String
mimetype String
size Int
createdAt DateTime @default(now())
message MessageAttachment[]
}
model Message {
id String @id @default(uuid())
text String
senderId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sender User? @relation(references: [id], fields: [senderId], onDelete: SetNull)
attachments MessageAttachment[]
}
model MessageAttachment {
messageId String
attachmentId String
message Message @relation(fields: [messageId], references: [id])
attachment Attachment @relation(fields: [attachmentId], references: [id])
@@id([messageId, attachmentId])
}
model Channel {
id String @id @default(uuid())
name String
persistent Boolean
}