Update booking workflow: availability-first, hold-only without DB writes
This commit is contained in:
@@ -14,7 +14,11 @@ description: Отвечать клиентам в VK по стоимости о
|
||||
- число гостей
|
||||
- при наличии: тип номера
|
||||
- важно: в «Парадиз» питание не предоставляется, не предлагать тарифы с питанием
|
||||
2. Посчитать стоимость через скрипт:
|
||||
2. Перед подтверждением брони обязательно проверить занятость в БД:
|
||||
- не допускать бронирование одного и того же номера на пересекающиеся даты;
|
||||
- если даты заняты, предложить ближайшие свободные даты;
|
||||
- если по датам нет мест в выбранном номере, предложить другие номера со свободными датами.
|
||||
3. После успешной проверки посчитать стоимость через скрипт:
|
||||
|
||||
```bash
|
||||
python3 {baseDir}/scripts/calc_quote.py \
|
||||
@@ -109,7 +113,14 @@ python3 {baseDir}/scripts/calc_quote.py \
|
||||
|
||||
Комментарий клиента — обязательное поле. Если комментарий есть, сохранять его в журнал брони (`bookings.txt` и `bookings.jsonl`) и в Telegram-уведомление, не терять.
|
||||
|
||||
Если клиент просит «подержать номер», создавай запись удержания (максимум 24 часа) в отдельном файле `{baseDir}/data/holds.jsonl`:
|
||||
Если клиент просит «подержать номер», создавай запись удержания (максимум 24 часа) в отдельном файле `{baseDir}/data/holds.jsonl`.
|
||||
|
||||
Важно для hold (фиксации на сутки):
|
||||
- это предварительная неоплаченная фиксация;
|
||||
- в `testDB.sqlite` и `sync.sqlite` запись НЕ вносить;
|
||||
- в `bookings.txt` и `bookings.jsonl` запись НЕ вносить.
|
||||
|
||||
Команда для hold:
|
||||
|
||||
```bash
|
||||
python3 {baseDir}/scripts/manage_holds.py add \
|
||||
@@ -152,6 +163,13 @@ python3 {baseDir}/scripts/manage_holds.py cleanup
|
||||
`Спасибо за бронирование 🤍 Ваша бронь подтверждена.`
|
||||
`За 3–5 дней до заезда я напомню вам о деталях.`
|
||||
|
||||
После подтверждённой брони (не hold) обязательно выполнить полный цикл:
|
||||
1) внести запись в БД,
|
||||
2) внести запись в текстовые журналы,
|
||||
3) сформировать файл брони,
|
||||
4) отправить файл гостю в VK,
|
||||
5) отправить уведомление в Telegram.
|
||||
|
||||
После подтверждения/фиксации брони обязательно сохранить запись, отправить уведомление в Telegram и отправить гостю в VK файл брони:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user