// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client-js"
output = "../src/generated/prisma"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(cuid())
username String @unique
discordId String @unique
email String? @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Posts Post[]
UserSettings UserSettings?
@@index([discordId])
}
model UserSettings {
id String @id @default(cuid())
user User @relation(fields: [userId], references: [id])
userId String @unique
showOnWeb Boolean @default(true)
privateProfile Boolean @default(false)
publishOnWeb Boolean @default(true)
}
model Guild {
id String @id @default(cuid())
guildId String @unique
name String
description String?
tags String?
slug String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Posts Post[]
GuildSettings GuildSettings?
@@index([guildId, name])
}
model GuildSettings {
id String @id @default(cuid())
guild Guild @relation(fields: [guildId], references: [id])
guildId String @unique
minStarCount Int? @default(5)
StarBoardChannels StarBoard[]
}
model StarBoard {
id String @id @default(cuid())
guild GuildSettings @relation(fields: [guildSettingsId], references: [id])
guildSettingsId String
channelId String
messageSyntax String
StarboardSourceChannels StarboardSourceChannels[]
}
model StarboardSourceChannels {
id String @id @default(cuid())
starboard StarBoard @relation(fields: [starBoardChannelsId], references: [id])
starBoardChannelsId String
channelId String
}
model Post {
id Int @id @default(autoincrement())
user User @relation(fields: [userId], references: [id])
userId String
guild Guild @relation(fields: [guildId], references: [id])
guildId String
messageId String @unique
PostSources PostSources[]
createdAt DateTime @default(now())
}
model PostSources {
id String @id @default(cuid())
post Post @relation(fields: [postId], references: [id])
postId Int
messageId String @unique
channelId String
}