mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2024-11-10 06:43:08 +02:00
199 lines
7.0 KiB
Plaintext
199 lines
7.0 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "mysql"
|
|
url = env("DB_CONNECTION_URL")
|
|
}
|
|
|
|
model ArchivedChannel {
|
|
channelId String @db.VarChar(19)
|
|
name String
|
|
ticket Ticket @relation(fields: [ticketId], references: [id])
|
|
ticketId String @db.VarChar(19)
|
|
|
|
@@id([ticketId, channelId])
|
|
@@unique([ticketId, channelId])
|
|
@@map("archived_channels")
|
|
}
|
|
|
|
model ArchivedMessage {
|
|
author ArchivedUser @relation(fields: [ticketId, authorId], references: [ticketId, userId])
|
|
authorId String @db.VarChar(19)
|
|
data Json
|
|
deleted Boolean @default(false)
|
|
edited Boolean @default(false)
|
|
id String @id @unique @db.VarChar(19)
|
|
ticket Ticket @relation(fields: [ticketId], references: [id])
|
|
ticketId String @db.VarChar(19)
|
|
|
|
@@map("archived_messages")
|
|
}
|
|
|
|
model ArchivedRole {
|
|
archivedUsers ArchivedUser[]
|
|
colour String @default("7289DA") @db.Char(6)
|
|
name String
|
|
roleId String @db.VarChar(19)
|
|
ticket Ticket @relation(fields: [ticketId], references: [id])
|
|
ticketId String @db.VarChar(19)
|
|
|
|
@@id([ticketId, roleId])
|
|
@@unique([ticketId, roleId])
|
|
@@map("archived_roles")
|
|
}
|
|
|
|
model ArchivedUser {
|
|
archivedMessages ArchivedMessage[]
|
|
avatar String
|
|
bot Boolean @default(false)
|
|
discriminator String @db.Char(4)
|
|
displayName String
|
|
role ArchivedRole @relation(fields: [ticketId, roleId], references: [ticketId, roleId])
|
|
roleId String @db.VarChar(19)
|
|
ticket Ticket @relation(fields: [ticketId], references: [id])
|
|
ticketId String @db.VarChar(19)
|
|
userId String @db.VarChar(19)
|
|
username String
|
|
|
|
@@id([ticketId, userId])
|
|
@@unique([ticketId, userId])
|
|
@@map("archived_users")
|
|
}
|
|
|
|
model Category {
|
|
channelName String @default("ticket-{num}")
|
|
claiming Boolean @default(false)
|
|
guild Guild @relation(fields: [guildId], references: [id])
|
|
guildId String @db.VarChar(19)
|
|
id String @id @unique @db.VarChar(19)
|
|
image String?
|
|
memberLimit Int @default(1)
|
|
name String
|
|
openingMessage String @db.Text
|
|
ping Json @default("[]")
|
|
requireTopic Boolean @default(false)
|
|
roles Json
|
|
tickets Ticket[]
|
|
totalLimit Int @default(-1)
|
|
// survey Survey @relation(fields: [guildId, surveyName], references: [guildId, name])
|
|
surveyName String
|
|
|
|
@@map("categories")
|
|
}
|
|
|
|
model Guild {
|
|
archive Boolean @default(true)
|
|
categories Category[]
|
|
errorColour String @default("RED")
|
|
id String @id @unique @db.VarChar(19)
|
|
primaryColour String @default("#009999")
|
|
successColour String @default("GREEN")
|
|
// surveys Survey[]
|
|
tags Tag[]
|
|
tickets Ticket[]
|
|
|
|
@@map("guilds")
|
|
}
|
|
|
|
// model Survey {
|
|
// categories Category[]
|
|
// guild Guild @relation(fields: [guildId], references: [id])
|
|
// guildId String @db.VarChar(19)
|
|
// name String
|
|
// questions SurveyQuestion[]
|
|
// responses SurveyResponse[]
|
|
|
|
// @@id([guildId, name])
|
|
// @@unique([guildId, name])
|
|
// @@map("surveys")
|
|
// }
|
|
|
|
// model SurveyResponse {
|
|
// answers SurveyQuestionAnswer[]
|
|
// id Int @id @default(autoincrement())
|
|
// survey Survey @relation(fields: [surveyGuildId, surveyName], references: [guildId, name])
|
|
// surveyGuildId String @db.VarChar(19)
|
|
// surveyName String
|
|
// user User @relation(fields: [userId], references: [id])
|
|
// userId String @db.VarChar(19)
|
|
|
|
// @@map("survey_responses")
|
|
// }
|
|
|
|
// model SurveyQuestion {
|
|
// answers SurveyQuestionAnswer[]
|
|
// content String @db.Text
|
|
// id Int @id @default(autoincrement())
|
|
// survey Survey @relation(fields: [surveyGuildId, surveyName], references: [guildId, name])
|
|
// surveyGuildId String @db.VarChar(19)
|
|
// surveyName String
|
|
|
|
// @@map("survey_questions")
|
|
// }
|
|
|
|
// model SurveyQuestionAnswer {
|
|
// content String @db.Text
|
|
// id Int @id @default(autoincrement())
|
|
// surveyResponse SurveyResponse @relation(fields: [surveyResponseId], references: [id])
|
|
// surveyResponseId Int
|
|
// question SurveyQuestion @relation(fields: [questionId], references: [id])
|
|
// questionId Int
|
|
|
|
// @@map("survey_answers")
|
|
// }
|
|
|
|
model Tag {
|
|
content String @db.Text
|
|
guild Guild @relation(fields: [guildId], references: [id])
|
|
guildId String @db.VarChar(19)
|
|
id Int @id @default(autoincrement())
|
|
name String
|
|
|
|
@@unique([guildId, name])
|
|
@@map("tags")
|
|
}
|
|
|
|
model Ticket {
|
|
archivedChannels ArchivedChannel[]
|
|
archivedMessages ArchivedMessage[]
|
|
archivedRoles ArchivedRole[]
|
|
archivedUsers ArchivedUser[]
|
|
category Category @relation(fields: [categoryId], references: [id])
|
|
categoryId String @db.VarChar(19)
|
|
claimedBy User @relation(name: "TicketsClaimedByUser", fields: [claimedById], references: [id])
|
|
claimedById String @db.VarChar(19)
|
|
closedBy User @relation(name: "TicketsClosedByUser", fields: [closedById], references: [id])
|
|
closedById String @db.VarChar(19)
|
|
closedReason String?
|
|
createdBy User @relation(name: "TicketsCreatedByUser", fields: [createdById], references: [id])
|
|
createdById String @db.VarChar(19)
|
|
firstResponse DateTime?
|
|
guild Guild @relation(fields: [guildId], references: [id])
|
|
guildId String @db.VarChar(19)
|
|
id String @id @unique @db.VarChar(19)
|
|
lastMessage DateTime?
|
|
number Int
|
|
open Boolean @default(true)
|
|
openingMessage String @db.VarChar(19)
|
|
pinnedMessages Json @default("[]")
|
|
referencedBy Ticket[] @relation("TicketsReferencedByTicket")
|
|
references Ticket? @relation(name: "TicketsReferencedByTicket", fields: [referencesId], references: [id])
|
|
referencesId String? @db.VarChar(19)
|
|
topic String?
|
|
|
|
@@unique([guildId, number])
|
|
@@map("tickets")
|
|
}
|
|
|
|
model User {
|
|
id String @id @unique @db.VarChar(19)
|
|
// surveyResponses SurveyResponse[]
|
|
ticketsCreated Ticket[] @relation("TicketsCreatedByUser")
|
|
ticketsClosed Ticket[] @relation("TicketsClosedByUser")
|
|
ticketsClaimed Ticket[] @relation("TicketsClaimedByUser")
|
|
|
|
@@map("users")
|
|
}
|