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 }