|
|
@@ -40,12 +40,12 @@ def on_order_status_changed(order_id: int, status: str, order_data: dict, send_n
|
|
|
import notifications
|
|
|
notifications.notify_status_change(user_email, order_id, status, first_name, lang)
|
|
|
|
|
|
-def on_message_received(order_id: int, user_id: int, message: str):
|
|
|
+def on_message_received(order_id: int, user_id: int, message: str, image_url: str = None):
|
|
|
"""
|
|
|
Hook triggered when a client sends a message to an order chat.
|
|
|
Duplicates message to Redis for Telegram notification.
|
|
|
"""
|
|
|
- print(f"EVENT: New message for Order {order_id} from User {user_id}: {message[:20]}...")
|
|
|
+ print(f"EVENT: New message for Order {order_id} from User {user_id}: {str(message)[:20]}...")
|
|
|
|
|
|
r = _get_redis()
|
|
|
if r and config.TELEGRAM_CHAT_ID:
|
|
|
@@ -54,9 +54,15 @@ def on_message_received(order_id: int, user_id: int, message: str):
|
|
|
user_res = db.execute_query("SELECT first_name, last_name FROM users WHERE id = %s", (user_id,))
|
|
|
name = f"{user_res[0].get('first_name', 'User')} {user_res[0].get('last_name', '')}".strip() if user_res else "Client"
|
|
|
|
|
|
+ msg_text = message if message else "Image uploaded"
|
|
|
+ full_msg = f"💬 <b>Новое сообщение</b>\nЗаказ: #{order_id}\nОт: <b>{name}</b>\n\n{msg_text}"
|
|
|
+
|
|
|
+ if image_url:
|
|
|
+ full_msg += f"\n\n🖼️ <b>Вложение:</b> {config.FRONTEND_URL}/api/{image_url}"
|
|
|
+
|
|
|
payload = {
|
|
|
"id": config.TELEGRAM_CHAT_ID,
|
|
|
- "message": f"💬 <b>Новое сообщение</b>\nЗаказ: #{order_id}\nОт: <b>{name}</b>\n\n{message}"
|
|
|
+ "message": full_msg
|
|
|
}
|
|
|
r.rpush("messages_queue", json.dumps(payload, ensure_ascii=False))
|
|
|
except Exception as e:
|