// This is your Prisma schema file, // learn more about it in the docs: https://pris.ly/d/prisma-schema generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } model Guild { id String @id events Event[] members Member[] penalties Penalty[] queues Queue[] } model Queue { title String description String? updatedAt DateTime @updatedAt Tracks Json Member Member @relation(fields: [userId, guildId], references: [userId, guildId]) userId String authorId String Guild Guild @relation(fields: [guildId], references: [id]) guildId String @@unique([title, guildId], name: "queueIdentifier") } model Member { userId String level Int @default(0) queues Queue[] Guild Guild @relation(fields: [guildId], references: [id]) guildId String penalties Penalty[] @@unique([userId, guildId], name: "memberIdentifier") } enum PenaltyType { BAN TIMEOUT WARN } model Penalty { Member Member @relation(fields: [userId, guildId], references: [userId, guildId]) userId String type PenaltyType reason String? expires DateTime? Guild Guild @relation(fields: [guildId], references: [id]) guildId String @@unique([type, userId, guildId], name: "penaltyIdentifier") } model Event { title String action String metadata Json Guild Guild @relation(fields: [guildId], references: [id]) guildId String @@unique([title, action, guildId], name: "eventIdentifier") }