diff --git a/.bot.pid b/.bot.pid index 22c10cc..630d3f8 100644 --- a/.bot.pid +++ b/.bot.pid @@ -1 +1 @@ -1025432 +1052888 diff --git a/src/handlers/message_management.py b/src/handlers/message_management.py index 219ab77..52c588e 100644 --- a/src/handlers/message_management.py +++ b/src/handlers/message_management.py @@ -9,6 +9,7 @@ from aiogram.filters import Command from ..core.config import ADMIN_IDS from ..core.database import async_session_maker from ..core.chat_services import ChatMessageService +from ..core.services import UserService logger = logging.getLogger(__name__) @@ -100,6 +101,17 @@ async def quick_delete_replied_message(message: Message): # Пытаемся найти сообщение в БД по telegram_message_id async with async_session_maker() as session: + # Получаем admin user для deleted_by + admin_user = await UserService.get_user_by_telegram_id( + session, + message.from_user.id + ) + + if not admin_user: + logger.error(f"Админ {message.from_user.id} не найден в БД") + await message.answer("❌ Ошибка: пользователь не найден") + return + chat_message = await ChatMessageService.get_message_by_telegram_id( session, telegram_message_id=replied_msg.message_id @@ -119,11 +131,11 @@ async def quick_delete_replied_message(message: Message): except Exception as e: logger.warning(f"Не удалось удалить сообщение у {user_telegram_id}: {e}") - # Помечаем как удалённое в БД + # Помечаем как удалённое в БД (используем admin_user.id, а не telegram_id) await ChatMessageService.delete_message( session, message_id=chat_message.id, - deleted_by=message.from_user.id + deleted_by=admin_user.id ) logger.info(