diff --git a/prisma/schema.prisma b/prisma/schema.prisma deleted file mode 100644 index 6834ce1..0000000 --- a/prisma/schema.prisma +++ /dev/null @@ -1,248 +0,0 @@ -generator client { - provider = "prisma-client-js" -} - -datasource db { - provider = "mysql" - url = env("DB_CONNECTION_URL") -} - -model ArchivedChannel { - channelId String @db.VarChar(19) - createdAt DateTime @default(now()) - name String - ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) - ticketId String @db.VarChar(19) - - @@id([ticketId, channelId]) - @@unique([ticketId, channelId]) - @@map("archivedChannels") -} - -model ArchivedMessage { - author ArchivedUser @relation(fields: [ticketId, authorId], references: [ticketId, userId], onDelete: Cascade) - authorId String @db.VarChar(19) - content String @db.Text - createdAt DateTime @default(now()) - deleted Boolean @default(false) - edited Boolean @default(false) - id String @id @db.VarChar(19) - ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) - ticketId String @db.VarChar(19) - - @@map("archivedMessages") -} - -model ArchivedRole { - archivedUsers ArchivedUser[] - colour String @default("7289DA") @db.Char(6) - createdAt DateTime @default(now()) - name String - roleId String @db.VarChar(19) - ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) - ticketId String @db.VarChar(19) - - @@id([ticketId, roleId]) - @@unique([ticketId, roleId]) - @@map("archivedRoles") -} - -model ArchivedUser { - archivedMessages ArchivedMessage[] - avatar String - bot Boolean @default(false) - createdAt DateTime @default(now()) - discriminator String @db.Char(4) - displayName String @db.Text - role ArchivedRole @relation(fields: [ticketId, roleId], references: [ticketId, roleId], onDelete: Cascade) - roleId String @db.VarChar(19) - ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) - ticketId String @db.VarChar(19) - userId String @db.VarChar(19) - username String @db.Text - - @@id([ticketId, userId]) - @@unique([ticketId, userId]) - @@map("archivedUsers") -} - -model Category { - channelName String - claiming Boolean @default(false) - createdAt DateTime @default(now()) - cooldown Int? - customTopic String? - description String - discordCategory String @db.VarChar(19) - emoji String - enableFeedback Boolean @default(false) - guild Guild @relation(fields: [guildId], references: [id], onDelete: Cascade) - guildId String @db.VarChar(19) - id Int @id @default(autoincrement()) - image String? - memberLimit Int @default(1) - name String - openingMessage String @db.Text - pingRoles Json @default("[]") - questions Question[] - ratelimit Int? - requiredRoles Json @default("[]") - requireTopic Boolean @default(false) - staffRoles Json - tickets Ticket[] - totalLimit Int @default(50) - - @@map("categories") -} - -model Feedback { - comment String? @db.Text - createdAt DateTime @default(now()) - guild Guild @relation(fields: [guildId], references: [id], onDelete: Cascade) - guildId String @db.VarChar(19) - id Int @id @default(autoincrement()) - rating Int - ticket Ticket @relation(fields: [ticketId], references: [id]) - ticketId String @unique @db.VarChar(19) - user User? @relation(fields: [userId], references: [id]) - userId String? @db.VarChar(19) - - @@map("feedback") -} - -model Guild { - autoClose Int? - autoTag Json @default("[]") - archive Boolean @default(true) - blocklist Json @default("[]") - categories Category[] - claimButton Boolean @default(false) - closeButton Boolean @default(false) - createdAt DateTime @default(now()) - errorColour String @default("Red") - feedback Feedback[] - footer String? @default("Discord Tickets by eartharoid") - id String @id @db.VarChar(19) - locale String @default("en-GB") - logChannel String? @db.VarChar(19) - primaryColour String @default("#009999") - staleAfter Int? - successColour String @default("Green") - tags Tag[] - tickets Ticket[] - workingHours Json @default("[\"UTC\", [\"00:00\",\"23:59\"], [\"00:00\",\"23:59\"], [\"00:00\",\"23:59\"], [\"00:00\",\"23:59\"], [\"00:00\",\"23:59\"], [\"00:00\",\"23:59\"], [\"00:00\",\"23:59\"]]") - - @@map("guilds") -} - -model Question { - answers QuestionAnswer[] - createdAt DateTime @default(now()) - id String @id @default(uuid()) - category Category @relation(fields: [categoryId], references: [id], onDelete: Cascade) - categoryId Int - label String @db.VarChar(45) - maxLength Int? @default(4000) - minLength Int? @default(0) - options Json @default("[]") - order Int - placeholder String? @db.VarChar(100) - required Boolean @default(true) - style Int @default(2) - type QuestionType @default(TEXT) - value String? @db.Text - - @@map("questions") -} - -model QuestionAnswer { - createdAt DateTime @default(now()) - id Int @id @default(autoincrement()) - ticket Ticket @relation(fields: [ticketId], references: [id], onDelete: Cascade) - ticketId String @db.VarChar(19) - question Question @relation(fields: [questionId], references: [id], onDelete: Cascade) - questionId String - user User @relation(fields: [userId], references: [id], onDelete: Cascade) - userId String @db.VarChar(19) - value String? @db.Text - - @@map("questionAnswers") -} - -model Tag { - content String @db.Text - createdAt DateTime @default(now()) - guild Guild @relation(fields: [guildId], references: [id], onDelete: Cascade) - guildId String @db.VarChar(19) - id Int @id @default(autoincrement()) - name String - regex String? - - @@unique([guildId, name]) - @@map("tags") -} - -model Ticket { - archivedChannels ArchivedChannel[] - archivedMessages ArchivedMessage[] - archivedRoles ArchivedRole[] - archivedUsers ArchivedUser[] - category Category? @relation(fields: [categoryId], references: [id], onDelete: SetNull) - categoryId Int? - claimedBy User @relation(name: "TicketsClaimedByUser", fields: [claimedById], references: [id]) - claimedById String @db.VarChar(19) - closedAt DateTime? - closedBy User @relation(name: "TicketsClosedByUser", fields: [closedById], references: [id]) - closedById String @db.VarChar(19) - closedReason String? - createdAt DateTime @default(now()) - createdBy User @relation(name: "TicketsCreatedByUser", fields: [createdById], references: [id]) - createdById String @db.VarChar(19) - feedback Feedback? - feedbackId Int? - firstResponseAt DateTime? - deleted Boolean @default(false) - guild Guild @relation(fields: [guildId], references: [id], onDelete: Cascade) - guildId String @db.VarChar(19) - id String @id @db.VarChar(19) - lastMessageAt DateTime? - messageCount Int? - number Int - open Boolean @default(true) - openingMessage String @db.VarChar(19) - pinnedMessages Json @default("[]") - priority TicketPriority? - referencedBy Ticket[] @relation("TicketsReferencedByTicket") - 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]) - @@map("tickets") -} - -model User { - createdAt DateTime @default(now()) - feedback Feedback[] - id String @id @db.VarChar(19) - messageCount Int @default(0) - ticketsCreated Ticket[] @relation("TicketsCreatedByUser") - ticketsClosed Ticket[] @relation("TicketsClosedByUser") - ticketsClaimed Ticket[] @relation("TicketsClaimedByUser") - questionAnswers QuestionAnswer[] - - @@map("users") -} - -enum TicketPriority { - LOW - MEDIUM - HIGH -} - -enum QuestionType { - MENU - TEXT -}