How to add a car to favorites via connectOrCreate (similar to the basket). I have a connection between Car model and SessionClient model many to many. The machines already exist in the database, customers receive a token when they log in on the site.
model SessionClient {
id String @id @default(cuid())
sessionToken String @unique
expires DateTime
favoriteCars FavoriteCarsToCar[]
watchedCars WatchedCarsToCar[]
compareCars CompareCarsToCar[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Car Car? @relation(fields: [carId], references: [id])
carId String?
}
model FavoriteCarsToCar {
session SessionClient @relation(fields: [sessionId], references: [id])
sessionId String
car Car @relation(fields: [carId], references: [id])
carId String
@@id([sessionId, carId])
}
model Car {
id String @id @default(cuid())
id2 String @unique
color String
mileage String?
vin String @unique
year String?
img String[]
price Float?
desc String?
active Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sessionClients SessionClient[]
FavoriteCarsToCar FavoriteCarsToCar[]
WatchedCarsToCar WatchedCarsToCar[]
CompareCarsToCar CompareCarsToCar[]
}
I usually did this when the base is completely empty, but in this case there are cars:
const newCar = await db.car.create({
data: {
field: fieldDesc,
NewModel: {
connectOrCreate: {
where: {
id: fieldDesc)
},
create: {
id:fieldDesc,
name:fieldDesc
}
},
},