Spaces:
Runtime error
Runtime error
File size: 4,811 Bytes
339f372 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
from aiogram import Router, F
from aiogram.types import Message, CallbackQuery
from aiogram.fsm.context import FSMContext
from app.database import requests as rq
from app.keyboards import user_keyboards as kb
from app.states import Other
from app.database.requests import check_user_registered
from app.config.config import ADMIN_ID
router = Router()
@router.message(F.text == 'Посмотреть каталог услуг')
async def get_catalog(message: Message):
await message.answer('Спасибо за интерес! Вот наш перечень услуг. '
'Пожалуйста, выберите самую подходящую и нажмите на соответствующую кнопку, '
'чтобы узнать о ней подробнее:', reply_markup=await kb.user_keyboard_catalog())
@router.callback_query(F.data.startswith('service_'))
async def service_info(callback: CallbackQuery,state: FSMContext):
await callback.answer('')
service_info = await rq.get_service_info(callback.data.split('_')[1])
service_string = f"Вот информация по выбранной Вами услуге: \n" \
f"Название: {service_info.service_name} \n" \
f"Описание: {service_info.service_description} \n" \
f"Цена: {service_info.service_price}. \n\n" \
f"Хотите ли Вы воспользоваться данной услугой?"
await callback.answer('')
await state.set_state(Other.user_pre_buy_service)
await state.update_data(user_id=callback.from_user.id,
user_username=callback.from_user.username,
service=service_info.service_name)
await callback.message.answer(service_string, reply_markup=kb.service_confirm)
@router.message(F.text == 'Да, связаться с Ниной')
async def admin_prompt(message: Message, state: FSMContext):
await state.set_state(Other.user_buy_service)
await message.answer('Напишите Нине и изложите Вашу проблему - это поможет ей лучше понять Ваш конкретный случай'
' и сделать Ваш разговор более предметным!')
@router.message(Other.user_buy_service)
async def admin_connect(message: Message, state: FSMContext):
data = await state.get_data()
await message.bot.send_message(chat_id=ADMIN_ID[0],
text=f'Здравствуйте! Поступил новый заказ на услугу {data["service"]} от пользователя'
f' @{data["user_username"]}')
await message.send_copy(ADMIN_ID[0])
await message.answer('Спасибо за обращение! Скоро Нина свяжется с Вами в личных сообщениях для обсуждения '
'подробностей Вашего заказа!')
await state.clear()
registration_status = await check_user_registered(message.from_user.id)
if registration_status:
await message.answer('Вы можете вернуться в меню и посмотреть, какие еще услуги мы предлагаем!',
reply_markup=kb.user_back_wo_reg)
elif not registration_status:
await message.answer('Вы можете вернуться в меню и посмотреть, какие еще услуги мы предлагаем! Еще мы предлагаем '
'зарегистрироваться, чтобы получить возможность не пропускать всё самое важное, что происходит '
'в канале. Также регистрация позволит Вам вступить в СЕКРЕТНЫЙ КЛУБ пользователей, которые'
' будут иметь доступ к специальным акциям и ВКУСНЫМ ЦЕНАМ для своих!',
reply_markup=kb.user_back)
@router.message(F.text == 'Нет, вернуться в меню')
async def np_service_return_to_menu(message: Message, state: FSMContext):
await state.clear()
await message.answer('Чем я могу Вам помочь?', reply_markup=kb.user_main)
@router.callback_query(F.data == "user_to_main")
async def register(callback: CallbackQuery):
await callback.answer("Возвращаемся в меню")
await callback.message.answer("Чем я могу Вам помочь?", reply_markup=kb.user_main) |