186 lines
5 KiB
Text
186 lines
5 KiB
Text
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "mysql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model Guild {
|
|
id String @unique
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
guildMembers GuildMember[]
|
|
guildSettings GuildSettings?
|
|
guildCreditsSettings GuildCreditsSettings?
|
|
guildQuotesSettings GuildQuotesSettings?
|
|
apiCredentials ApiCredentials[]
|
|
cooldowns Cooldown[]
|
|
Quotes Quotes[]
|
|
}
|
|
|
|
model User {
|
|
id String @unique
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
guildMembers GuildMember[]
|
|
apiCredentials ApiCredentials[]
|
|
cooldowns Cooldown[]
|
|
|
|
userReputation UserReputation?
|
|
Quotes Quotes[] @relation(name: "Quotes")
|
|
PostedQuotes Quotes[] @relation(name: "PostedQuotes")
|
|
}
|
|
|
|
model GuildMember {
|
|
guildId String
|
|
userId String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @default(now())
|
|
|
|
guild Guild @relation(fields: [guildId], references: [id], onDelete: Cascade)
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
guildMemberCredit GuildMemberCredit?
|
|
apiCredentials ApiCredentials[]
|
|
cooldowns Cooldown[]
|
|
|
|
@@unique([guildId, userId])
|
|
}
|
|
|
|
model GuildMemberCredit {
|
|
guildId String
|
|
userId String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @default(now())
|
|
|
|
guildMember GuildMember @relation(fields: [guildId, userId], references: [guildId, userId], onDelete: Cascade)
|
|
balance Int @default(0)
|
|
|
|
@@unique([guildId, userId])
|
|
@@index([guildId])
|
|
@@index([userId])
|
|
@@index([guildId, userId])
|
|
}
|
|
|
|
model UserReputation {
|
|
id String @unique
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @default(now())
|
|
|
|
user User @relation(fields: [id], references: [id], onDelete: Cascade)
|
|
|
|
negative Int @default(0)
|
|
positive Int @default(0)
|
|
}
|
|
|
|
model GuildSettings {
|
|
id String @unique
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
guild Guild @relation(fields: [id], references: [id], onDelete: Cascade)
|
|
|
|
creditsSettings GuildCreditsSettings? @relation(fields: [guildCreditsSettingsId], references: [id], onDelete: Cascade)
|
|
|
|
guildCreditsSettingsId String?
|
|
GuildQuotesSettings GuildQuotesSettings? @relation(fields: [guildQuotesSettingsId], references: [id])
|
|
guildQuotesSettingsId String?
|
|
}
|
|
|
|
model GuildCreditsSettings {
|
|
id String @unique
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
guild Guild @relation(fields: [id], references: [id], onDelete: Cascade)
|
|
|
|
// Work commands
|
|
workBonusChance Int @default(30)
|
|
workPenaltyChance Int @default(10)
|
|
|
|
// Bonus commands
|
|
dailyBonusAmount Int @default(25)
|
|
weeklyBonusAmount Int @default(50)
|
|
monthlyBonusAmount Int @default(150)
|
|
|
|
guildSettings GuildSettings[]
|
|
}
|
|
|
|
model GuildQuotesSettings {
|
|
id String @unique
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
guild Guild @relation(fields: [id], references: [id], onDelete: Cascade)
|
|
|
|
status Boolean @default(false)
|
|
quoteChannelId String
|
|
|
|
guildSettings GuildSettings[]
|
|
}
|
|
|
|
model Quotes {
|
|
id String @id @default(uuid())
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
user User @relation(fields: [userId], references: [id], name: "Quotes")
|
|
userId String
|
|
|
|
guild Guild @relation(fields: [guildId], references: [id], onDelete: Cascade)
|
|
guildId String
|
|
|
|
message String
|
|
|
|
posterUserId String
|
|
posterUser User @relation(fields: [posterUserId], references: [id], name: "PostedQuotes")
|
|
}
|
|
|
|
model ApiCredentials {
|
|
id String @id @default(cuid())
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
guild Guild? @relation(fields: [guildId], references: [id], onDelete: Cascade)
|
|
guildId String?
|
|
|
|
user User? @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
userId String?
|
|
|
|
guildMember GuildMember? @relation(fields: [guildId, userId], references: [guildId, userId], onDelete: Cascade)
|
|
|
|
apiName String
|
|
credentials Json
|
|
|
|
@@unique([guildId, apiName])
|
|
@@unique([userId, apiName])
|
|
}
|
|
|
|
model Cooldown {
|
|
id String @id @default(uuid())
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
expiresAt DateTime
|
|
cooldownItem String
|
|
|
|
guild Guild? @relation(fields: [guildId], references: [id], onDelete: Cascade)
|
|
user User? @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
guildMember GuildMember? @relation(fields: [guildId, userId], references: [guildId, userId], onDelete: Cascade)
|
|
|
|
guildId String?
|
|
userId String?
|
|
|
|
@@index([cooldownItem, guildId], name: "cooldownItem_guildId_idx")
|
|
@@index([cooldownItem, userId], name: "cooldownItem_userId_idx")
|
|
@@index([cooldownItem, guildId, userId], name: "cooldownItem_guildId_userId_idx")
|
|
}
|
|
|
|
model ImportOldData {
|
|
id String @unique
|
|
done Boolean @default(false)
|
|
beforeMessageId String?
|
|
}
|