fix(bot): navigation defects — empty categories, country-list duplicates, DB typos #128

Closed
opened 2026-08-04 19:36:17 +00:00 by NW · 0 comments
Owner

Баг-репорт: Дефекты навигации, сброс локаций и рассинхронизация состояния бота

Severity: High | Priority: High

Диагноз (проверено на проде 192.168.2.74)

  1. Подмена/исчезновение стран — РАБОТАЕТ КАК ЗАДУМАНО: Germany/Berlin, Russia/Moscow, Russia/Saint Petersburg имеют is_active=0 (отключены в админке). Бот корректно их скрывает. France отсутствует в прод-БД. Проблема UX: пользователь не понимает почему страны пропали — нужна подсказка/логика.
  2. Пустые категории (France/Paris/1st, Germany/Berlin/Mitte) — UX-баг: handleDistrictSelection показывает "Select category:" с пустым списком (только Back). Нужно сообщение "Нет доступных категорий в этом районе".
  3. Дублирование "Select your country" — race condition: showProducts вызывается по сообщению (reply keyboard), не покрыт callback-lock; два быстрых нажатия → 2 sendMessage.
  4. Опечатки в БД: Spain/Barcelona/Centr (→Center), категория Chiken (→Chicken), Belgium/Brusel (→Brussels), Belgium/Sever (→North).

Acceptance

  • Пустые категории: понятное сообщение (products.no_categories) вместо пустого меню
  • Дублирование Select your country: дедупликация (1200ms debounce в routes.js)
  • Исправлены опечатки в БД (Centr→Center, Chiken→Chicken, Brusel→Brussels, Sever→North) + миграция 012 восстанавливает локации с реальными товарами
  • Тесты (48 pass)
  • Коммит b58087f + push
  • Деплой

Закрыто коммитом b58087f (v1.2.3)

## Баг-репорт: Дефекты навигации, сброс локаций и рассинхронизация состояния бота **Severity:** High | **Priority:** High ### Диагноз (проверено на проде 192.168.2.74) 1. **Подмена/исчезновение стран** — РАБОТАЕТ КАК ЗАДУМАНО: Germany/Berlin, Russia/Moscow, Russia/Saint Petersburg имеют is_active=0 (отключены в админке). Бот корректно их скрывает. France отсутствует в прод-БД. Проблема UX: пользователь не понимает почему страны пропали — нужна подсказка/логика. 2. **Пустые категории (France/Paris/1st, Germany/Berlin/Mitte)** — UX-баг: handleDistrictSelection показывает "Select category:" с пустым списком (только Back). Нужно сообщение "Нет доступных категорий в этом районе". 3. **Дублирование "Select your country"** — race condition: showProducts вызывается по сообщению (reply keyboard), не покрыт callback-lock; два быстрых нажатия → 2 sendMessage. 4. **Опечатки в БД**: Spain/Barcelona/**Centr** (→Center), категория **Chiken** (→Chicken), Belgium/Brusel (→Brussels), Belgium/Sever (→North). ### Acceptance - [x] Пустые категории: понятное сообщение (products.no_categories) вместо пустого меню - [x] Дублирование Select your country: дедупликация (1200ms debounce в routes.js) - [x] Исправлены опечатки в БД (Centr→Center, Chiken→Chicken, Brusel→Brussels, Sever→North) + миграция 012 восстанавливает локации с реальными товарами - [x] Тесты (48 pass) - [x] Коммит b58087f + push - [ ] Деплой Закрыто коммитом b58087f (v1.2.3)
NW closed this issue 2026-08-04 19:53:47 +00:00
Sign in to join this conversation.