Improve CarPass product UX and service flows

This commit is contained in:
VPN SaaS Dev
2026-05-14 19:33:25 +09:00
parent b85db333d8
commit caa5f6d3db
36 changed files with 1836 additions and 366 deletions

View File

@@ -25,7 +25,7 @@ api = ApiClient()
def main_keyboard() -> ReplyKeyboardMarkup:
return ReplyKeyboardMarkup(
keyboard=[
[KeyboardButton(text="Открыть гараж", web_app=WebAppInfo(url=settings.effective_webapp_url))],
[KeyboardButton(text="Открыть CarPass")],
[KeyboardButton(text="Мои авто"), KeyboardButton(text="Помощь")],
],
resize_keyboard=True,
@@ -49,7 +49,7 @@ async def start(message: Message) -> None:
"Нажми «Открыть CarPass», чтобы перейти в приложение."
)
await message.answer(text, reply_markup=webapp_inline_keyboard())
await message.answer("Быстрый вход также закреплен на клавиатуре ниже.", reply_markup=main_keyboard())
await message.answer("Клавиатура ниже открывает меню бота. Сам Mini App запускается кнопкой в сообщении выше.", reply_markup=main_keyboard())
@dp.message(Command("add_car"))
@@ -104,11 +104,25 @@ async def show_stats(callback: CallbackQuery) -> None:
@dp.message(Command("help"))
async def help_message(message: Message) -> None:
await message.answer(
"Команды:\n"
"/add_car Название - быстро добавить авто\n"
"/cars - список авто и статистика\n\n"
"Заправки, ремонты и обслуживание удобнее вести через кнопку «Открыть гараж».",
reply_markup=main_keyboard(),
"CarPass помогает вести цифровой паспорт автомобиля.\n\n"
"Что можно делать:\n"
"• добавлять автомобили и параметры обслуживания;\n"
"• вести заправки, ТО, ремонт, страховку, налоги и штрафы;\n"
"• видеть стоимость владения, стоимость 1 км и прогноз расходов;\n"
"• загрузить чек, проверить распознанные данные и сохранить запись;\n"
"• привязать авто к проверенному СТО и подтверждать сервисную историю;\n"
"• зарегистрировать СТО и отправить заявку на проверку.\n\n"
"Mini App нужно открывать кнопкой под этим сообщением: так Telegram передает защищенную авторизацию.",
reply_markup=webapp_inline_keyboard(),
)
@dp.message(F.text == "Открыть CarPass")
@dp.message(F.text == "Открыть гараж")
async def open_carpass(message: Message) -> None:
await message.answer(
"Открой CarPass кнопкой ниже. Это правильный Telegram Mini App вход с авторизацией.",
reply_markup=webapp_inline_keyboard(),
)