generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" url = env("DATABASE_URL") relationMode = "prisma" } model Profile { id String @id @default(uuid()) userId String @unique name String imageURL String @db.Text email String @db.Text servers Server [] members Member [] channels Channel [] createdAt DateTime @default(now()) UpdatedAt DateTime @updatedAt } model Server { id String @id @default(uuid()) name String imageURL String @db.Text inviteCode String @db.Text profileId String profile Profile @relation(fields: [profileId], references: [id], onDelete: Cascade) members Member[] channel Channel [] createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([profileId]) } enum MemberRole { ADMIN MODERATOR GUEST } model Member { id String @id @default(uuid()) role MemberRole @default(GUEST) profileId String profile Profile @relation(fields: [profileId], references: [id], onDelete: Cascade) serverId String server Server @relation(fields: [serverId], references: [id], onDelete: Cascade) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([profileId]) @@index([serverId]) } enum ChannelType { TEXT AUDIO VIDEO } model Channel { id String @id @default(uuid()) name String type ChannelType @default(TEXT) profileId String profile Profile @relation(fields: [profileId], references: [id], onDelete: Cascade) serverId String server Server @relation(fields: [serverId], references: [id], onDelete: Cascade) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([profileId]) @@index([serverId]) }