Merge pull request #1654 from Fr1ngg/7sqsqp-bedolaga/fix-user-deletion-errors

Handle Heleket payments when removing users
This commit is contained in:
Egor
2025-11-01 05:43:19 +03:00
committed by GitHub

View File

@@ -21,7 +21,7 @@ from app.database.models import (
User, UserStatus, Subscription, Transaction, PromoCode, PromoCodeUse,
ReferralEarning, SubscriptionServer, YooKassaPayment, BroadcastHistory,
CryptoBotPayment, SubscriptionConversion, UserMessage, WelcomeText,
SentNotification, PromoGroup, MulenPayPayment, Pal24Payment,
SentNotification, PromoGroup, MulenPayPayment, Pal24Payment, HeleketPayment,
AdvertisingCampaign, AdvertisingCampaignRegistration, PaymentMethod,
TransactionType
)
@@ -779,6 +779,29 @@ class UserService:
except Exception as e:
logger.error(f"❌ Ошибка удаления Pal24 платежей: {e}")
try:
heleket_result = await db.execute(
select(HeleketPayment).where(HeleketPayment.user_id == user_id)
)
heleket_payments = heleket_result.scalars().all()
if heleket_payments:
logger.info(
f"🔄 Удаляем {len(heleket_payments)} Heleket платежей"
)
await db.execute(
update(HeleketPayment)
.where(HeleketPayment.user_id == user_id)
.values(transaction_id=None)
)
await db.flush()
await db.execute(
delete(HeleketPayment).where(HeleketPayment.user_id == user_id)
)
await db.flush()
except Exception as e:
logger.error(f"❌ Ошибка удаления Heleket платежей: {e}")
try:
transactions_result = await db.execute(
select(Transaction).where(Transaction.user_id == user_id)