Sobes.tech
Back to tasks
Junior — Middle+
25

Регистрация бронирования в отеле с проверкой наличия свободных номеров

Companies where asked:

ОстровокОстровок
Get help with live coding in real time with Sobes Copilot
Task condition

Реализуйте функцию create_order(user_id: int, hotel_slug: str, start_date: date, end_date: date), которая сохраняет новое бронирование в базе данных. Если на выбранные даты нет свободных номеров, функция должна вернуть соответствующее сообщение.

Таблица availability (доступность номеров):

hotel_slug date rooms_count
ibis_batumi 2023-12-01 2
ibis_batumi 2023-12-02 1
ibis_batumi 2023-12-03 2

Таблица orders (существующие бронирования):

user_id hotel_slug start_date end_date
1 ibis_batumi 2023-12-01 2023-12-03

Сценарий работы функции:

  • Клиент 1 (оформил бронь чуть раньше):
    • заказ успешно создаётся;
    • количество свободных номеров уменьшается на 1 для каждой даты периода.
  • Клиент 2 (пытается забронировать те же даты):
    • получает сообщение, что свободных номеров нет.
def create_order(user_id: int, hotel_slug: str, start_date: date, end_date: date):
    pass