У вас должно быть два разных типа бронирования. Я предполагаю, что это что-то вроде соглашения AirBnB, где пользователь может владеть собственностью, которая сдана в аренду, и / или арендовать недвижимость у других. Я думаю, что вы должны указать два разных элемента в вашем типе пользователя, чтобы различать их, а затем иметь отношение к ним. Примерно так:
type User {
booking: [Booking!]! @relation(name: "UserToBooking" onDelete: CASCADE)
let: [Booking!]! @relation(name: "UserToLetBooking" onDelete: CASCADE)
}
type Booking {
owner: User! @relation(name: "UserToLetBooking", onDelete: SET_NULL)
renter: User! @relation(name: "UserToBooking", onDelete: SET_NULL)
}
Таким образом, в бронировании указывается пользователь, который является арендующим владельцем, и пользователь, который является арендатором. Я также изменил арендатора в бронировании на одного пользователя, потому что я считаю, что в каждом бронировании есть 1 владелец и 1 арендатор. Я также изменил настройку onDelete для типа пользователя, чтобы при удалении пользователя удалялись все его бронирования или предложения. Это типичный пример, но решать вам.