From ad78831d7eff73bc459521b5899a1979f3c8c893 Mon Sep 17 00:00:00 2001 From: Bob Burningham Date: Fri, 20 Oct 2023 22:44:49 -0700 Subject: [PATCH] added messages conversations and dm to prisma --- prisma/schema.prisma | 69 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) 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]) +}