Remember uploaded images

This commit is contained in:
2025-08-04 19:34:50 +02:00
parent 464791d9f5
commit 8aa8be7e9f
21 changed files with 573 additions and 241 deletions
+46 -20
View File
@@ -8,15 +8,14 @@ datasource db {
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String
role UserRole
id Int @id @default(autoincrement())
email String @unique
password String @default("")
name String
role UserRole @default(USER)
emailConfirmedAt DateTime? @db.Timestamptz(3)
loginLinks UserLoginLinks[]
deactivated Boolean @default(false)
createdAt DateTime @default(now()) @db.Timestamptz(3)
@@ -30,6 +29,8 @@ model User {
teamsMember TeamMember[]
answers QuestAnswer[] @relation("AnswerMember")
reviews QuestAnswer[] @relation("AnswerReview")
uploaded_files File[]
}
enum UserRole {
@@ -38,16 +39,28 @@ enum UserRole {
ADMIN
}
model UserLoginLinks {
id Int @id @default(autoincrement())
model File {
id Int @id @default(autoincrement())
uuid String @unique
url String @unique
secret String
used Boolean @default(false)
creator User @relation(fields: [creatorId], references: [id], onUpdate: Cascade, onDelete: Cascade)
creatorId Int
user User @relation(fields: [userId], references: [id], onUpdate: Cascade, onDelete: Cascade)
userId Int
hunt Hunt? @relation(name: "OldHuntFiles", fields: [huntId], references: [id], onUpdate: Cascade, onDelete: Cascade)
huntId Int?
quest HuntQuest? @relation(name: "OldQuestFiles", fields: [questId], references: [id], onUpdate: Cascade, onDelete: Cascade)
questId Int?
answer QuestAnswer? @relation(name: "OldAnswerFiles", fields: [answerId], references: [id], onUpdate: Cascade, onDelete: Cascade)
answerId Int?
createdAt DateTime @default(now()) @db.Timestamptz(3)
answers QuestAnswer[]
quests HuntQuest[]
hunts Hunt[]
}
model Hunt {
@@ -55,16 +68,19 @@ model Hunt {
name String
description String
virtual Boolean @default(false)
start DateTime? @db.Timestamptz(3)
end DateTime? @db.Timestamptz(3)
allowJoin Boolean @default(false)
revealPictures Boolean @default(false)
revealAnswers Boolean @default(false)
virtual Boolean @default(false)
start DateTime? @db.Timestamptz(3)
end DateTime? @db.Timestamptz(3)
allowJoin Boolean @default(false)
revealQuests Boolean @default(false)
revealAnswers Boolean @default(false)
creator User @relation(fields: [creatorId], references: [id], onUpdate: Cascade, onDelete: Cascade)
creatorId Int
picture File? @relation(fields: [pictureId], references: [id], onUpdate: Cascade, onDelete: Cascade)
pictureId Int?
createdAt DateTime @default(now()) @db.Timestamptz(3)
updatedAt DateTime @updatedAt @db.Timestamptz(3)
deletedAt DateTime? @db.Timestamptz(3)
@@ -74,6 +90,8 @@ model Hunt {
quests HuntQuest[]
old_files File[] @relation("OldHuntFiles")
@@index([creatorId])
}
@@ -140,10 +158,12 @@ model HuntQuest {
title String
description String @default("")
question String?
image String?
location String?
locationLink String?
picture File? @relation(fields: [pictureId], references: [id], onUpdate: Cascade, onDelete: Cascade)
pictureId Int?
order Int @default(0)
optional Boolean @default(true)
pictureRequired Boolean @default(false)
@@ -161,13 +181,14 @@ model HuntQuest {
answers QuestAnswer[]
old_files File[] @relation("OldQuestFiles")
@@index([huntId])
}
model QuestAnswer {
id Int @id @default(autoincrement())
text String?
picture String?
location String?
lat Decimal? @db.Decimal(10, 8)
lon Decimal? @db.Decimal(10, 8)
@@ -181,6 +202,9 @@ model QuestAnswer {
quest HuntQuest @relation(fields: [questId], references: [id], onUpdate: Cascade, onDelete: Cascade)
questId Int
picture File? @relation(fields: [pictureId], references: [id], onUpdate: Cascade, onDelete: Cascade)
pictureId Int?
createdAt DateTime @default(now()) @db.Timestamptz(3)
updatedAt DateTime @updatedAt @db.Timestamptz(3)
@@ -190,6 +214,8 @@ model QuestAnswer {
score Int? @db.SmallInt
review String?
old_files File[] @relation("OldAnswerFiles")
@@index([teamId])
@@index([memberId])
@@index([questId])