Back to tasks
ОстровокGet help with live coding in real time with Sobes Copilot
Junior — Middle+
25
Регистрация бронирования в отеле с проверкой наличия свободных номеров
Companies where asked:
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