diff --git a/restoran_max_bot/restoran_max_bot/promo_handlers.py b/restoran_max_bot/restoran_max_bot/promo_handlers.py index 96257f2..ebe7f8f 100644 --- a/restoran_max_bot/restoran_max_bot/promo_handlers.py +++ b/restoran_max_bot/restoran_max_bot/promo_handlers.py @@ -4,6 +4,7 @@ from max_bot.models import Client, PromoCode from restoran_max_bot.common import common_get_data from restoran_max_bot.message_sender import send_text, send_image from restoran_max_bot.settings import STATICFILES_DIRS, BASE_URL +from restoran_max_bot.user_logger import log_user_action def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: @@ -13,8 +14,27 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: messenger = 'max-bot' client_id = client.id + # Логируем начало обработки промокода + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_start', + details={ + 'promo': promo, + 'client_id': client_id, + 'messenger': messenger + } + ) + data = common_get_data(client=client, key=promo) if not data: + # Логируем, что промокод не найден в системе + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_not_found', + details={'promo': promo} + ) return True promo_obj, created = PromoCode.objects.get_or_create( @@ -27,8 +47,20 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: if not created: if promo_obj.used: send_text(chat_id, settings_max['token'], "⚠️ Этот промокод уже был использован.") + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_already_used', + details={'promo': promo, 'used_at': promo_obj.used_at} + ) else: send_text(chat_id, settings_max['token'], "ℹ️ QR-код уже был отправлен.") + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_already_sent', + details={'promo': promo} + ) return True # Генерируем QR @@ -39,6 +71,20 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: img.save(f"{STATICFILES_DIRS[0]}/client_qr/{file_name}") qr_url = f"{BASE_URL}/static/client_qr/{file_name}" + # Логируем сформированные ссылки + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_qr_generated', + details={ + 'promo': promo, + 'qr_url': qr_url, + 'status_url': url_promo, + 'file_name': file_name, + 'created': created + } + ) + send_image(chat_id, settings_max['token'], qr_url, 'Ваш QR-код.') # Отправляем дополнительный контент