Я пытаюсь использовать отношения один-ко-многим в Призме и растерялся. Моя цель состоит в том, чтобы при создании спортсмена ему была назначена команда, и команда также обновляется, чтобы показать всех атлетов, назначенных для него. Мой распознаватель показан ниже.
async function signUpUser(parent, args, { prisma }, info) {
let password = await bcrypt.hash(args.password, 10)
const team = await prisma.team({ id: args.team })
const user = await prisma.createUser({
...args,
password,
team: { connect: { id: team.id } }
})
//create special user based on user type from args
switch(args.userType) {
case "ATHLETE":
createAthlete(user, prisma)
break
case "COACH":
createCoach(user, prisma)
break
case "HEAD_COACH":
createHeadCoach(user, prisma)
break
case "PARENT":
createParent(user, prisma)
break
default:
createAthlete(user, prisma)
}
return {
user
}
}
async function createAthlete(user, prisma) {
const athlete = await prisma.createAthlete({
user: { connect: { id: user.id } }
})
return athlete
}
Этот код работает почти так, как мне бы хотелось. Пользователь задан командой и спортсменом. Однако в моей модели данных я хочу, чтобы команда, в которой они хранятся, показывала всех спортсменов, назначенных в этой команде. Я считаю, что мне нужно использовать метод upsert, но не знаю как.