Skip to content

Repository files navigation

Чат-бот клиники

Минимальный VK Long Poll бот для регистрации/входа по телефону, просмотра подписки и выбора абонемента через уже написанное API клиники. Запись на прием, эквайринг и внешняя CRM-интеграция в этом проекте не используются.

Что реализовано

  • согласие на обработку ПДн с отправкой PDF-файла Пользовательское соглашение.pdf;
  • регистрация и повторный вход по номеру телефона;
  • автоподстановка имени из VK кнопкой, если VK отдал имя профиля;
  • список абонементов через GET /api/v2/subscriptions/;
  • просмотр подписки через GET /api/v2/clients/subscription/{client_id}/;
  • просмотр остатков услуг через GET /api/v2/clients/subscription/{client_id}/services/;
  • заявка на подключение абонемента через POST /api/v2/clients/subscription/;
  • fallback в локальную базу бота, если API временно не приняло профиль или заявку;
  • SQLite-база для состояний, согласий, контента и audit log;
  • веб-админка для акций, правил рекомендаций, магазина бонусов и шаблонов уведомлений.

Запуск

  1. Установите зависимости:
.venv\Scripts\python.exe -m pip install -r requirements.txt
  1. Создайте .env по примеру .env.example.

На VPS API работает локально, поэтому для сервера используйте:

BOT_API_BASE_URL=http://127.0.0.1:8000/api/v2
  1. Запустите бота через Long Poll:
.venv\Scripts\python.exe main.py --mode longpoll

Long Poll не требует домена и Callback API.

  1. Админку можно запустить отдельно:
.venv\Scripts\python.exe main.py --mode admin

По умолчанию она доступна на http://127.0.0.1:8081/. Логин и пароль задаются через ADMIN_LOGIN и ADMIN_PASSWORD.

Ожидаемые endpoints API

Бот рассчитан на backend MasterStom Clients v2:

  • POST /api/v2/clients/ - создание клиента. Бот отправляет name, surname, patronymic, age, phone, опционально email.
  • GET /api/v2/clients/{client_id}/ - получение клиента, зарезервировано для расширений.
  • GET /api/v2/subscriptions/ - список доступных абонементов.
  • GET /api/v2/clients/subscription/{client_id}/ - данные о подписке клиента.
  • GET /api/v2/clients/subscription/{client_id}/services/ - доступные услуги и остатки.
  • POST /api/v2/clients/subscription/ - создание подписки клиенту.
  • PUT /api/v2/clients/subscription/{client_id}/ - обновление подписки, если у клиента уже есть активная запись.

Онлайн-оплата пока сделана как заглушка: бот создает/обновляет запись подписки в API и сообщает пользователю, что администратор свяжется для оплаты вручную.

Админка

В админке можно редактировать:

  • акции и скидки;
  • описание правил рекомендаций;
  • контакты поддержки;
  • магазин товаров/услуг за бонусы;
  • шаблоны уведомлений;
  • заявки на списание бонусов.

Полноценная программа лояльности и автоматическое начисление бонусов намеренно не реализованы.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages