v3.0.0/src/api/prisma/schema.prisma

120 lines
2.7 KiB
Plaintext

generator client {
provider = "prisma-client-js"
previewFeatures = ["selectRelationCount"]
}
datasource db {
provider = "sqlite"
url = "file:../../../database/database.sqlite"
shadowDatabaseUrl = "file:../../../database/shadow.sqlite"
}
model albums {
id Int @id @default(autoincrement())
userId Int
name String
zippedAt DateTime?
createdAt DateTime @default(now())
editedAt DateTime?
nsfw Boolean @default(false)
@@unique([userId, name], name: "albums_userid_name_unique")
}
model albumsFiles {
id Int @id @default(autoincrement())
albumId Int
fileId Int
@@unique([albumId, fileId], name: "albumsfiles_albumid_fileid_unique")
}
model albumsLinks {
id Int @id @default(autoincrement())
albumId Int
linkId Int @unique
}
model bans {
id Int @id @default(autoincrement())
ip String
createdAt DateTime @default(now())
}
model fileTags {
id Int @id @default(autoincrement())
fileId Int
tagId Int
@@unique([fileId, tagId], name: "filetags_fileid_tagid_unique")
}
model files {
id Int @id @default(autoincrement())
userId Int?
name String
original String
type String
size Int
hash String
ip String
createdAt DateTime @default(now())
editedAt DateTime?
}
model links {
id Int @id @default(autoincrement())
userId Int
albumId Int
identifier String @unique
views Int @default(0)
enabled Boolean @default(true)
enableDownload Boolean @default(false)
expiresAt DateTime?
createdAt DateTime @default(now())
editedAt DateTime?
@@unique([userId, identifier], name: "links_userid_identifier_unique")
}
model settings {
id Int @id @default(autoincrement())
key String
value String
}
model statistics {
id Int @id @default(autoincrement())
batchId Int?
type String?
// TODO: This was JSON before so make sure to stringify and parse when saving stats
data String?
createdAt DateTime @default(now())
@@unique([batchId, type], name: "statistics_batchid_type_unique")
}
model tags {
id Int @id @default(autoincrement())
uuid String
userId Int
name String
createdAt DateTime @default(now())
editedAt DateTime?
@@unique([userId, name], name: "tags_userid_name_unique")
}
model users {
id Int @id @default(autoincrement())
username String @unique
password String
enabled Boolean @default(true)
isAdmin Boolean @default(false)
apiKey String? @unique
passwordEditedAt DateTime?
apiKeyEditedAt DateTime?
createdAt DateTime @default(now())
editedAt DateTime?
}