diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 2561384..42c89d3 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -57,6 +57,12 @@ model Member{ serverId String server Server @relation(fields: [serverId], references: [id], onDelete: Cascade) + messages Message[] + directMessages DirectMessage[] + + conversationsInitiated Conversation[] @relation("MemberOne") + conversationsReceived Conversation[] @relation("MemberTwo") + createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@ -81,9 +87,70 @@ model Channel{ serverId String server Server @relation(fields: [serverId], references: [id], onDelete: Cascade) + messages Message[] + createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([profileId]) @@index([serverId]) -} \ No newline at end of file +} + +model Message{ + id String @id @default(uuid()) + content String @db.Text + + fileUrl String? @db.Text + + memberId String + member Member @relation(fields: [memberId], references: [id], onDelete: Cascade) + + channelId String + channel Channel @relation(fields: [channelId], references: [id], onDelete: Cascade) + + deleted Boolean @default(false) + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@index([channelId]) + @@index([memberId]) +} + +model Conversation{ + id String @id @default(uuid()) + + memberOneId String + MemberOne Member @relation("MemberOne", fields: [memberOneId], references: [id], onDelete: Cascade) + + memberTwoId String + MemberTwo Member @relation("MemberTwo", fields: [memberTwoId], references: [id], onDelete: Cascade) + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + directmessages DirectMessage[] + + @@index([memberTwoId]) + + @@unique([memberOneId, memberTwoId]) +} + +model DirectMessage{ + id String @id @default(uuid()) + content String @db.Text + fileUrl String? @db.Text + + memberId String + member Member @relation(fields: [memberId], references: [id], onDelete: Cascade) + + conversationId String + conversation Conversation @relation(fields: [conversationId], references: [id], onDelete: Cascade) + + deleted Boolean @default(false) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@index([memberId]) + @@index([conversationId]) +}