Update schema

This commit is contained in:
Isaac 2022-04-27 00:08:07 +01:00
parent da7a2784ea
commit aa0a265dbf

View File

@ -8,10 +8,11 @@ datasource db {
} }
model ArchivedChannel { model ArchivedChannel {
channelId String @db.VarChar(19) channelId String @db.VarChar(19)
createdAt DateTime @default(now())
name String name String
ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade)
ticketId String @db.VarChar(19) ticketId String @db.VarChar(19)
@@id([ticketId, channelId]) @@id([ticketId, channelId])
@@unique([ticketId, channelId]) @@unique([ticketId, channelId])
@ -19,14 +20,15 @@ model ArchivedChannel {
} }
model ArchivedMessage { model ArchivedMessage {
author ArchivedUser @relation(fields: [ticketId, authorId], references: [ticketId, userId]) author ArchivedUser @relation(fields: [ticketId, authorId], references: [ticketId, userId])
authorId String @db.VarChar(19) authorId String @db.VarChar(19)
content String content String
deleted Boolean @default(false) createdAt DateTime @default(now())
edited Boolean @default(false) deleted Boolean @default(false)
id String @id @db.VarChar(19) edited Boolean @default(false)
ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) id String @id @db.VarChar(19)
ticketId String @db.VarChar(19) ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade)
ticketId String @db.VarChar(19)
@@map("archivedMessages") @@map("archivedMessages")
} }
@ -34,6 +36,7 @@ model ArchivedMessage {
model ArchivedRole { model ArchivedRole {
archivedUsers ArchivedUser[] archivedUsers ArchivedUser[]
colour String @default("7289DA") @db.Char(6) colour String @default("7289DA") @db.Char(6)
createdAt DateTime @default(now())
name String name String
roleId String @db.VarChar(19) roleId String @db.VarChar(19)
ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade)
@ -48,6 +51,7 @@ model ArchivedUser {
archivedMessages ArchivedMessage[] archivedMessages ArchivedMessage[]
avatar String avatar String
bot Boolean @default(false) bot Boolean @default(false)
createdAt DateTime @default(now())
discriminator String @db.Char(4) discriminator String @db.Char(4)
displayName String displayName String
role ArchivedRole @relation(fields: [ticketId, roleId], references: [ticketId, roleId]) role ArchivedRole @relation(fields: [ticketId, roleId], references: [ticketId, roleId])
@ -63,27 +67,26 @@ model ArchivedUser {
} }
model Category { model Category {
channelName String @default("ticket-{num}") channelName String @default("ticket-{num}")
claiming Boolean @default(false) claiming Boolean @default(false)
description String createdAt DateTime @default(now())
discordCategory String @db.VarChar(19) description String
emoji String discordCategory String @db.VarChar(19)
guild Guild @relation(fields: [guildId], references: [id]) emoji String
guildId String @db.VarChar(19) guild Guild @relation(fields: [guildId], references: [id])
id Int @id @default(autoincrement()) guildId String @db.VarChar(19)
image String? id Int @id @default(autoincrement())
memberLimit Int @default(1) image String?
name String memberLimit Int @default(1)
openingMessage String @db.Text name String
pingRoles Json @default("[]") openingMessage String @db.Text
requiredRoles Json pingRoles Json @default("[]")
requireTopic Boolean @default(false) questions Question[]
staffRoles Json requiredRoles Json
surveyDescription String? requireTopic Boolean @default(false)
surveyLink String? staffRoles Json
surveyTitle String? tickets Ticket[]
tickets Ticket[] totalLimit Int @default(-1)
totalLimit Int @default(-1)
@@map("categories") @@map("categories")
} }
@ -92,8 +95,10 @@ model Guild {
archive Boolean @default(true) archive Boolean @default(true)
blocklist Json blocklist Json
categories Category[] categories Category[]
createdAt DateTime @default(now())
errorColour String @default("RED") errorColour String @default("RED")
id String @id @db.VarChar(19) id String @id @db.VarChar(19)
logChannel String? @db.VarChar(19)
primaryColour String @default("#009999") primaryColour String @default("#009999")
successColour String @default("GREEN") successColour String @default("GREEN")
tags Tag[] tags Tag[]
@ -102,57 +107,100 @@ model Guild {
@@map("guilds") @@map("guilds")
} }
model Question {
answers QuestionAnswer[]
id Int @id @default(autoincrement())
category Category? @relation(fields: [categoryId], references: [id])
categoryId Int?
maxLength Int @default(4000)
minLength Int @default(0)
order Int?
placeholder String? @db.VarChar(100)
required Boolean @default(true)
style Int @default(2)
value String? @db.VarChar(4000)
@@map("questions")
}
model QuestionAnswer {
id Int @id @default(autoincrement())
ticket Ticket @relation(fields: [ticketId], references: [id])
ticketId String @db.VarChar(19)
question Question @relation(fields: [questionId], references: [id])
questionId Int
user User @relation(fields: [userId], references: [id])
userId String @db.VarChar(19)
value String? @db.VarChar(4000)
@@map("questionAnswers")
}
model Tag { model Tag {
content String content String
guild Guild @relation(fields: [guildId], references: [id]) createdAt DateTime @default(now())
guildId String @db.VarChar(19) guild Guild @relation(fields: [guildId], references: [id])
id Int @id @default(autoincrement()) guildId String @db.VarChar(19)
name String id Int @id @default(autoincrement())
name String
regex String?
@@unique([guildId, name]) @@unique([guildId, name])
@@map("tags") @@map("tags")
} }
model Ticket { model Ticket {
archivedChannels ArchivedChannel[] archivedChannels ArchivedChannel[]
archivedMessages ArchivedMessage[] archivedMessages ArchivedMessage[]
archivedRoles ArchivedRole[] archivedRoles ArchivedRole[]
archivedUsers ArchivedUser[] archivedUsers ArchivedUser[]
category Category? @relation(fields: [categoryId], references: [id], onDelete: SetNull) category Category? @relation(fields: [categoryId], references: [id], onDelete: SetNull)
categoryId Int? categoryId Int?
claimedBy User @relation(name: "TicketsClaimedByUser", fields: [claimedById], references: [id]) claimedBy User @relation(name: "TicketsClaimedByUser", fields: [claimedById], references: [id])
claimedById String @db.VarChar(19) claimedById String @db.VarChar(19)
closedBy User @relation(name: "TicketsClosedByUser", fields: [closedById], references: [id]) closedBy User @relation(name: "TicketsClosedByUser", fields: [closedById], references: [id])
closedById String @db.VarChar(19) closedById String @db.VarChar(19)
closedReason String? closedReason String?
createdBy User @relation(name: "TicketsCreatedByUser", fields: [createdById], references: [id]) createdAt DateTime @default(now())
createdById String @db.VarChar(19) createdBy User @relation(name: "TicketsCreatedByUser", fields: [createdById], references: [id])
firstResponse DateTime? createdById String @db.VarChar(19)
deleted Boolean @default(false) firstResponseAt DateTime?
guild Guild @relation(fields: [guildId], references: [id]) deleted Boolean @default(false)
guildId String @db.VarChar(19) guild Guild @relation(fields: [guildId], references: [id])
id String @id @db.VarChar(19) guildId String @db.VarChar(19)
lastMessage DateTime? id String @id @db.VarChar(19)
messageCount Int? lastMessageAt DateTime?
number Int messageCount Int?
open Boolean @default(true) number Int
openingMessage String @db.VarChar(19) open Boolean @default(true)
pinnedMessages Json @default("[]") openingMessage String @db.VarChar(19)
referencedBy Ticket[] @relation("TicketsReferencedByTicket") pinnedMessages Json @default("[]")
references Ticket? @relation(name: "TicketsReferencedByTicket", fields: [referencesId], references: [id], onDelete: SetNull) priority Priority?
referencesId String? @db.VarChar(19) referencedBy Ticket[] @relation("TicketsReferencedByTicket")
topic String? referencesMessageId String @db.VarChar(19)
referencesTicket Ticket? @relation(name: "TicketsReferencedByTicket", fields: [referencesTicketId], references: [id], onDelete: SetNull)
referencesTicketId String? @db.VarChar(19)
topic String?
questionAnswers QuestionAnswer[]
@@unique([guildId, number]) @@unique([guildId, number])
@@map("tickets") @@map("tickets")
} }
model User { model User {
id String @id @db.VarChar(19) createdAt DateTime @default(now())
messageCount Int @default(0) id String @id @db.VarChar(19)
ticketsCreated Ticket[] @relation("TicketsCreatedByUser") messageCount Int @default(0)
ticketsClosed Ticket[] @relation("TicketsClosedByUser") ticketsCreated Ticket[] @relation("TicketsCreatedByUser")
ticketsClaimed Ticket[] @relation("TicketsClaimedByUser") ticketsClosed Ticket[] @relation("TicketsClosedByUser")
ticketsClaimed Ticket[] @relation("TicketsClaimedByUser")
questionAnswers QuestionAnswer[]
@@map("users") @@map("users")
} }
enum Priority {
LOW
MEDIUM
HIGH
}