Kord/prisma/schema.prisma

85 lines
1.7 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model GuildConfig {
guildId String @id
prefix String @default("!")
mimicEnabled Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model InviteRole {
id String @id @default(uuid())
guildId String
inviteCode String
roleId String
createdAt DateTime @default(now())
@@unique([guildId, inviteCode])
}
enum SubscriptionTier {
FREE
STANDARD
PRO
PREMIUM
}
enum DeleteCondition {
OWNER_LEAVE
EMPTY
}
model UserSubscription {
userId String @id
tier SubscriptionTier @default(FREE)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
guilds GuildOwnership[]
}
model GuildOwnership {
guildId String @id
ownerId String
owner UserSubscription @relation(fields: [ownerId], references: [userId], onDelete: Cascade)
createdAt DateTime @default(now())
@@index([ownerId])
}
model VoiceGenerator {
channelId String @id
guildId String
categoryId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([guildId])
}
model TempVoiceChannel {
channelId String @id
guildId String
ownerId String
deleteWhen DeleteCondition @default(EMPTY)
createdAt DateTime @default(now())
@@index([guildId])
@@index([ownerId])
}
model UserVoiceProfile {
userId String @id
customName String?
userLimit Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}