This commit is contained in:
2025-12-14 21:26:47 +11:00
parent a3e95627c8
commit 2045e40cee
25 changed files with 6131 additions and 104 deletions

View File

@@ -1,7 +1,6 @@
generator client {
provider = "prisma-client"
output = "../generated/prisma"
previewFeatures = ["driverAdapters"]
}
datasource db {
@@ -17,8 +16,40 @@ generator prismabox {
}
model User {
id String @id @default(cuid())
email String @unique
id String @id @default(cuid())
email String @unique
username String @unique
password String
createdAt DateTime @default(now())
messages Message[] @relation("UserMessages")
conversationMemberships ConversationParticipant[] @relation("UserConversations")
}
model Conversation {
id String @id @default(cuid())
createdAt DateTime @default(now())
participants ConversationParticipant[] @relation("ConversationParticipants")
messages Message[] @relation("ConversationMessages")
}
model ConversationParticipant {
id String @id @default(cuid())
conversationId String
userId String
conversation Conversation @relation("ConversationParticipants", fields: [conversationId], references: [id], onDelete: Cascade)
user User @relation("UserConversations", fields: [userId], references: [id], onDelete: Cascade)
lastReadAt DateTime?
@@unique([conversationId, userId])
@@index([userId])
}
model Message {
id String @id @default(cuid())
conversationId String
senderId String
content String
createdAt DateTime @default(now())
conversation Conversation @relation("ConversationMessages", fields: [conversationId], references: [id], onDelete: Cascade)
sender User @relation("UserMessages", fields: [senderId], references: [id], onDelete: Cascade)
@@index([conversationId, createdAt])
}