43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
generator client {
|
|
provider = "prisma-client"
|
|
output = "../generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "mysql"
|
|
}
|
|
|
|
model Pet {
|
|
id Int @id @default(autoincrement())
|
|
name String
|
|
species String
|
|
userId String
|
|
|
|
posts Post[] // One pet can have many posts
|
|
|
|
sentRequests Friendship[] @relation("sentRequests")
|
|
receivedRequests Friendship[] @relation("receivedRequests")
|
|
}
|
|
|
|
model Friendship {
|
|
id Int @id @default(autoincrement())
|
|
|
|
petId Int
|
|
friendId Int
|
|
|
|
pet Pet @relation("sentRequests", fields: [petId], references: [id])
|
|
friend Pet @relation("receivedRequests", fields: [friendId], references: [id])
|
|
|
|
accepted Boolean @default(false)
|
|
createdAt DateTime @default(now())
|
|
|
|
// 3. Safety: A pet can't friend the same pet twice
|
|
@@unique([petId, friendId])
|
|
}
|
|
|
|
model Post {
|
|
id Int @id @default(autoincrement())
|
|
content String
|
|
petId Int @map("pet_id")
|
|
pet Pet @relation(fields: [petId], references: [id])
|
|
} |