diff --git a/src/docbot/handlers/doctors/meet_doctor_handler.py b/src/docbot/handlers/doctors/meet_doctor_handler.py
index f102792..4f587d8 100644
--- a/src/docbot/handlers/doctors/meet_doctor_handler.py
+++ b/src/docbot/handlers/doctors/meet_doctor_handler.py
@@ -1,31 +1,66 @@
-from telegram import Update
+from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import (
ContextTypes,
+ CommandHandler,
ConversationHandler,
CallbackQueryHandler
)
from docbot.handlers.utils.cancel_handler import get_cancel_handler
-from docbot.handlers.start_handler import get_start_handler
from core.logging import logger
GET_TERMS_ACKNOWLEDGED = 1
-async def show_terms(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
- user_id = context.user_data['user_id']
+async def show_tariffs(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
+
+ keyboard_tariff = [
+ [
+ InlineKeyboardButton(
+ text="Тариф Новичок\n10 консультаций на месяц\n3990 рублей",
+ callback_data="tariff:ten:consultations",
+ url="https://pay.example.com/novice"
+ ),
+ InlineKeyboardButton(
+ text="Тариф Безлимит\n100 консультаций на месяц\n5990 рублей",
+ callback_data="tariff:hundred:consultations",
+ url="https://pay.example.com/beslimit"
+ ),
+ ]
+ ]
await update.callback_query.message.reply_text(
- text="Введите адрес вашей платёжной ссылки, пожалуйста."
+ text="Оплатить.\n\n"
+ "Юридический текст: для оказания услуг понадобятся ваши персональные данные:\n\n"
+ "фио, специальность и Telegram ID.\n\n"
+ "Нажимая кнопку оплатить, вы соглашаетесь с условиями оферты и обработкой персональных данных\n\n"
+ "на условиях Политики обработки перс данных (гиперссылка на оферту и Политику)",
+ reply_markup=InlineKeyboardMarkup(keyboard_tariff)
)
- logger.info(f"Ask user {user_id} to enter their payment link.")
return GET_TERMS_ACKNOWLEDGED
-def meet_doctor_handler() -> ConversationHandler:
+
+async def send_notification(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
+
+ await update.callback_query.message.reply_text(
+ text="Спасибо вам за доверие!\n\n"
+ "Бот обработает платеж в течение 10-20 минут и предложит вам регистрацию.\n\n"
+ "Чек придет вам на почту, если что-то пойдет не так - пишите @help_milana_in_law"
+ )
+
+ return ConversationHandler.END
+
+
+def meet_doctor_method() -> CommandHandler:
+ """Фабрика для регистрации в Application."""
+ return CommandHandler("payment_methods", show_tariffs)
+
+
+def get_meet_doctor_handler() -> ConversationHandler:
return ConversationHandler(
- entry_points=[get_start_handler()],
+ entry_points=[meet_doctor_method()],
states={
GET_TERMS_ACKNOWLEDGED: [
- CallbackQueryHandler(show_terms, pattern="^(terms:aknowledged)$")
+ CallbackQueryHandler(send_notification, pattern="^(tariff)$")
],
},
fallbacks=[get_cancel_handler()],
diff --git a/src/docbot/handlers/start_handler.py b/src/docbot/handlers/start_handler.py
index 320d788..705a141 100644
--- a/src/docbot/handlers/start_handler.py
+++ b/src/docbot/handlers/start_handler.py
@@ -9,16 +9,7 @@ async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
user_id = update.effective_user.id
if await get_doctor(user_id):
-
- keyboard_accept = [
- [
- InlineKeyboardButton(
- "Узнать условия",
- callback_data="terms:aknowledged"
- ),
- ]
- ]
-
+
text = (
"👋 Добро пожаловать в DocBot!\n"
"Привет, это первый сервис безопасных онлайн-консультаций Докбот.\n\n"
@@ -26,11 +17,11 @@ async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
"Бот разработан медицинским юристом Миланой Бессоновой с соблюдением всех строгих законов о персональных данных.\n\n"
"В отличии от других сервисов, Докбот реально защищает врача от избыточного сбора персональных данных, штрафов и возвратов.\n\n"
"Хотите работать законно и безопасно?\n\n"
- "Нажмите 'Узнать условия' чтобы ознакомиться с тарифами\n\n"
+ "Используйте команду /meet, чтобы ознакомиться с тарифами\n\n"
"Юридический текст: для оказания услуг понадобятся ваши персональные данные: фио, специальность и Telegram ID.\n\n"
"Ознакомиться с офертой и условиями Политики обработки перс данных можно тут (гиперссылка на оферту и Политику).\n\n"
)
- await context.bot.send_message(chat_id=update.effective_chat.id, text=text, parse_mode=ParseMode.HTML, reply_markup=InlineKeyboardMarkup(keyboard_accept))
+ await context.bot.send_message(chat_id=update.effective_chat.id, text=text, parse_mode=ParseMode.HTML)
else:
text = (
"👋 Добро пожаловать в DocBot!\n"
diff --git a/src/docbot/main.py b/src/docbot/main.py
index fac5ccf..739bda2 100644
--- a/src/docbot/main.py
+++ b/src/docbot/main.py
@@ -1,4 +1,5 @@
from core.logging import logger
+from docbot.handlers.doctors.meet_doctor_handler import get_meet_doctor_handler
from telegram.ext import ApplicationBuilder, PicklePersistence, ExtBot
from core.config import settings
@@ -39,6 +40,7 @@ def main():
app.add_handler(get_referral_handlers())
app.add_handler(get_verify_handler())
app.add_handler(get_add_payment_method_handler())
+ app.add_handler(get_meet_doctor_handler())
app.add_handler(get_unknown_handler())