from aiogram import Router, F 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.keyboards.my_booking import ( get_booking_actions ) router = Router() @router.message( F.text == "📖 Мои записи" ) async def my_bookings( message: Message ): bookings = get_user_bookings( message.from_user.id ) if not bookings: await message.answer( "У вас нет активных записей" ) return 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"] ) ) @router.callback_query( F.data.startswith( "cancel_booking_" ) ) async def cancel_booking_handler( callback: CallbackQuery ): booking_id = int( callback.data.split("_")[-1] ) cancel_booking( booking_id ) await callback.message.edit_text( "❌ Запись отменена" ) await callback.answer() @router.callback_query( F.data.startswith("edit_booking_") ) async def edit_booking_handler( callback: CallbackQuery, state: FSMContext ): booking_id = int( callback.data.split("_")[-1] ) await state.update_data( editing_booking_id=booking_id ) await state.set_state( BookingState.service ) await callback.message.edit_text( "✏️ Выберите новую услугу:", reply_markup=get_services_keyboard() ) await callback.answer()