This commit is contained in:
behruz-dev
2025-09-10 18:18:17 +05:00
parent 608447643e
commit 43fd98d854
2 changed files with 34 additions and 2 deletions

View File

@@ -7,7 +7,7 @@ from rest_framework import serializers
from core.apps.orders.models import Order, OrderItem
from core.apps.products.models import Product
from core.apps.products.serializers.product import ProductListSerializer
from core.apps.orders.tasks.order_item import send_orders_to_tg_bot
from core.apps.orders.tasks.order_item import send_orders_to_tg_bot, send_message_order_user
class OrderItemCreateSerializer(serializers.Serializer):
@@ -59,6 +59,10 @@ class OrderCreateSerializer(serializers.Serializer):
quantity=item.get('quantity'),
username=order.user.username,
)
send_message_order_user.delay(
chat_id=order.user.tg_id,
order_id=order.id,
)
OrderItem.objects.bulk_create(items)
order.total_price = total_price

View File

@@ -1,7 +1,7 @@
import requests
from celery import shared_task
from core.apps.orders.models import OrderItem
from core.apps.orders.models import OrderItem, Order
from config.env import env
token = env.str("BOT_TOKEN")
@@ -22,3 +22,31 @@ def send_orders_to_tg_bot(chat_id, product_name, quantity, username):
response = requests.post(url, data=payload)
return response.json()
@shared_task
def send_message_order_user(chat_id, order_id):
url = f"https://api.telegram.org/bot{token}/sendMessage"
order = Order.objects.get(id=order_id)
result = []
for order_item in order.items.all():
product_name = order_item.product.name
unit = order_item.product.unity.name
quantity = order_item.quantity
price = order_item.price
result.append(f"🔹 {product_name} {unit} ({quantity} x {price:.2f})")
message = (
f'⚡️ Оформлен новый заказ\n\n'
f"Сумма заказа №{order.order_number}: {order.total_price}\n\n"
f"{result}"
)
payload = {
"chat_id": chat_id,
"text": message
}
response = requests.post(url, data=payload)
return response.json()