Encrypted-Chat-Server/prisma/schema.prisma
2024-12-15 06:11:44 -08:00

45 lines
1.6 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
model FriendRequest {
id Int @id @default(autoincrement())
senderUsername String
receiverUsername String
status String @default("pending") // Allowed values: "pending", "accepted", "rejected"
createdAt DateTime @default(now())
sender user @relation("SentRequests", fields: [senderUsername], references: [username])
receiver user @relation("ReceivedRequests", fields: [receiverUsername], references: [username])
}
model Message {
id Int @id @default(autoincrement())
content String
nonce String
senderUsername String
receiverUsername String
createdAt DateTime @default(now())
pubKey String
sender user @relation("SentMessages", fields: [senderUsername], references: [username])
receiver user @relation("ReceivedMessages", fields: [receiverUsername], references: [username])
}
model user {
username String @id
email String @unique
password String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pubKey String @unique
sentMessages Message[] @relation("SentMessages")
receivedMessages Message[] @relation("ReceivedMessages")
sentRequests FriendRequest[] @relation("SentRequests")
receivedRequests FriendRequest[] @relation("ReceivedRequests")
}