I'm having trouble conceptualizing how to handle this issue. I've pored through the Prisma docs and other SO questions, but they all seem to be slightly different from this situation.
I have two models:
model User {
id Int @id @default(autoincrement())
firstName String? @map("first_name")
lastName String? @map("last_name")
email String @unique
password String
role UserRole @default(value: USER)
image String? @map("image")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
friends Friend[]
@@map("users")
}
model Friend {
id Int @id @default(autoincrement())
inviteSentOn DateTime @map("invite_sent_on") @db.Timestamptz(1)
inviteAcceptedOn DateTime @map("invite_accepted_on") @db.Timestamptz(1)
userId Int @map("user_id")
friendId Int @map("friend_id")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
user User @relation(fields: [userId], references: [id])
// friend User? @relation(name: "FriendFriend", fields: [friendId], references: [id])
@@map("friends")
}
I want to be able to set up the relationships on the Friend model to both point towards the User model, however I receive errors such as Error validating field 'friend' in model 'Friend': The relation field 'friend' on Model 'Friend' is missing an opposite relation field on the model 'User'.
I've tried adding the name property to the @relation field, but start receiving errors about ambiguous relations being detected.
How do I go about setting these relations up correctly?