From 6d64ba8ffd07d409b6727f573e2c669da61070a5 Mon Sep 17 00:00:00 2001 From: Egor Date: Wed, 24 Sep 2025 06:28:11 +0300 Subject: [PATCH] Run promo group assignment on transaction completion --- app/database/crud/transaction.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/database/crud/transaction.py b/app/database/crud/transaction.py index 11a2827e..a7077161 100644 --- a/app/database/crud/transaction.py +++ b/app/database/crud/transaction.py @@ -134,11 +134,25 @@ async def complete_transaction(db: AsyncSession, transaction: Transaction) -> Tr transaction.is_completed = True transaction.completed_at = datetime.utcnow() - + await db.commit() await db.refresh(transaction) - + logger.info(f"✅ Транзакция {transaction.id} завершена") + + try: + from app.services.promo_group_assignment import ( + maybe_assign_promo_group_by_total_spent, + ) + + await maybe_assign_promo_group_by_total_spent(db, transaction.user_id) + except Exception as exc: + logger.debug( + "Не удалось проверить автовыдачу промогруппы для пользователя %s: %s", + transaction.user_id, + exc, + ) + return transaction