65 lines
1.6 KiB
Text
65 lines
1.6 KiB
Text
datasource db {
|
|
provider = "mysql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
model User {
|
|
id Int @id @default(autoincrement())
|
|
username String @unique
|
|
email String @unique
|
|
password String
|
|
role Role
|
|
createdAt DateTime @default(now())
|
|
lastSeen DateTime @default(now())
|
|
settings UserSettings?
|
|
// STORED AS MEGABYTES !!
|
|
maxUploadMB Int @default(100)
|
|
uploads Upload[]
|
|
sessions Session[]
|
|
}
|
|
|
|
model Session {
|
|
id String @id @unique
|
|
user User @relation(fields: [userId], references: [id])
|
|
userId Int
|
|
|
|
authorized Boolean
|
|
createdAt DateTime @default(now())
|
|
expiresAt DateTime
|
|
remoteAddress String?
|
|
}
|
|
|
|
model UserSettings {
|
|
id Int @id @default(autoincrement())
|
|
user User @relation(fields: [userId], references: [id])
|
|
userId Int @unique
|
|
|
|
newPostsPublic Boolean @default(true)
|
|
linkToRaw Boolean @default(false)
|
|
|
|
embedTitle String @default("{{file}}")
|
|
embedDescription String @default("Uploaded by {{username}} at {{time}}")
|
|
embedColor Int @default(3159110)
|
|
}
|
|
|
|
model Upload {
|
|
id String @id
|
|
uploader User @relation(fields: [uploaderId], references: [id])
|
|
uploaderId Int
|
|
|
|
fileName String @db.LongText
|
|
internalName String @db.LongText
|
|
size Int
|
|
public Boolean @default(true)
|
|
uploaded DateTime @default(now())
|
|
}
|
|
|
|
enum Role {
|
|
ADMINISTRATOR
|
|
USER
|
|
BANNED
|
|
}
|