datasource db { provider = "postgresql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" } model User { id String @id @default(cuid()) email String @unique username String @unique passwordhash String servers Server[] serverId String? messages Message[] session Session[] channels Channel[] } model Server { id String @id @default(cuid()) name String participants User[] channels Channel[] } model Channel { id String @id @default(cuid()) name String server Server? @relation(fields: [serverId], references: [id]) serverId String? messages Message[] DM Boolean? dmParticipants User[] } model Message { id String @id @default(cuid()) body String channel Channel @relation(fields: [channelId], references: [id]) creator User @relation(fields: [userId], references: [id]) userId String channelId String } model Session { id String @id @default(cuid()) token String userId String user User @relation(fields: [userId], references: [id]) } model ExpiredSession { id String @id @default(cuid()) token String }