В моей базе данных hasura.io у меня есть таблица booking
, в которой я храню бронирования со следующими свойствами:
- id (автоинкремент)
- из (timestamptz)
- до (timestamptz)
- описание (текст)
Теперь, из пользовательского интерфейса, когда пользователь делает бронирование, я хотел бы проверить, есть ли любые заказы, сделанные ранее, которые касаются диапазона этих дат.
например. Пользователь хочет сделать бронирование со следующими датами:
{
"from": "2020-03-31T14:00:00+00:00",
"to": "2020-03-31T17:00:00+00:00"
}
Но в тот же день есть бронирование:
{
"from": "2020-03-31T15:00:00+00:00",
"to": "2020-04-01T17:00:00+00:00"
}
Обратите внимание, что это бронирование было сделано не в диапазоне дат, которые пользователь пытается забронировать. Поэтому следующий запрос ничего не даст.
query CheckBooking($from: timestamptz!, $to: timestamptz!) {
booking(where: {_and: [{from: {_lte: $from}}, {to: {_gte: $to}}]}) {
id
from
to
}
}
Это то, что я пробовал без успеха. Может ли кто-нибудь помочь выяснить, какой правильный запрос к проверить, есть ли какие-либо бронирования в диапазоне или в пределах нового бронирования пользователей?