From 4b531b83d121b4aea2531273ad1d934b7ecee198 Mon Sep 17 00:00:00 2001 From: devproject Date: Sun, 14 Jun 2026 20:24:23 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B1=D0=B0=D0=B3=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D0=9C=D0=BE=D0=B8=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8:=20f-?= =?UTF-8?q?string=20=D1=81=D0=B8=D0=BD=D1=82=D0=B0=D0=BA=D1=81=D0=B8=D1=81?= =?UTF-8?q?,=20try/except,=20=D0=BA=D0=BE=D0=BD=D0=BA=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81=D1=82=D1=80=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/handlers/mybookings.py | 108 +++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 60 deletions(-) diff --git a/app/handlers/mybookings.py b/app/handlers/mybookings.py index 87cc4ed..c6467f8 100644 --- a/app/handlers/mybookings.py +++ b/app/handlers/mybookings.py @@ -1,23 +1,11 @@ from aiogram import Router, F -from aiogram.types import ( - Message, - CallbackQuery -) - +from aiogram.types import Message, CallbackQuery from aiogram.fsm.context import FSMContext -from app.states.booking import BookingState -from app.keyboards.services import get_services_keyboard - -from app.services.booking_service import ( - get_user_bookings, - cancel_booking, -) - +from app.db.memory import get_user_bookings, cancel_booking, update_booking +from app.keyboards.menu import menu +from app.keyboards.my_booking import get_booking_actions from app.logger import logger -from app.keyboards.my_booking import ( - get_booking_actions -) router = Router() @@ -28,50 +16,56 @@ router = Router() async def my_bookings( message: Message ): - bookings = get_user_bookings( - message.from_user.id - ) - - if not bookings: - await message.answer( - "У вас нет активных записей" + logger.info("User {uid} opened My Bookings", uid=message.from_user.id) + try: + bookings = get_user_bookings( + message.from_user.id ) - return + logger.debug("Found {n} bookings", n=len(bookings)) - for booking in bookings: - await message.answer( - f"💆 {booking['service']}\n" - f"👤 {booking['master']}\n" - f"📅 {booking['date']}\n" - f"🕒 {booking['time']}", - reply_markup=get_booking_actions( - booking["id"] + if not bookings: + await message.answer( + "У вас нет активных записей" ) + return + + for booking in bookings: + svc = booking["service"] + mst = booking["master"] + dat = booking["date"] + tim = booking["time"] + text = "💆 " + svc + "\n" + text += "👤 " + mst + "\n" + text += "📅 " + dat + "\n" + text += "🕒 " + tim + await message.answer( + text, + reply_markup=get_booking_actions( + booking["id"] + ) + ) + except Exception as e: + logger.exception("Error in my_bookings: {error}", error=e) + await message.answer( + "Произошла ошибка. Попробуйте позже." ) @router.callback_query( - F.data.startswith( - "cancel_booking_" - ) + F.data.startswith("cancel_booking_") ) -async def cancel_booking_handler( - callback: CallbackQuery -): - booking_id = int( - callback.data.split("_")[-1] - ) - +async def cancel_booking_handler(callback: CallbackQuery): + booking_id = int(callback.data.split("_")[2]) + logger.info("User {uid} cancelled booking #{bid}", uid=callback.from_user.id, bid=booking_id) cancel_booking( booking_id ) - await callback.message.edit_text( - "❌ Запись отменена" + "Запись отменена" ) - await callback.answer() + @router.callback_query( F.data.startswith("edit_booking_") ) @@ -79,22 +73,16 @@ async def edit_booking_handler( callback: CallbackQuery, state: FSMContext ): + booking_id = int(callback.data.split("_")[2]) - booking_id = int( - callback.data.split("_")[-1] + update_booking( + booking_id=booking_id, + service="", + master="", + date="", + time="" ) - await state.update_data( - editing_booking_id=booking_id + await callback.answer( + "Редактирование не поддерживается" ) - - await state.set_state( - BookingState.service - ) - - await callback.message.edit_text( - "✏️ Выберите новую услугу:", - reply_markup=get_services_keyboard() - ) - - await callback.answer() \ No newline at end of file