Добавлены методы-обёртки для работы с кошельком в модель Customer

This commit is contained in:
2025-11-27 21:24:33 +03:00
parent 82ed5a409e
commit 94ddb0424b

View File

@@ -216,6 +216,49 @@ class Customer(models.Model):
)
return customer, created
# Методы-обёртки для работы с кошельком (вся логика в WalletService)
def pay_from_wallet(self, order, amount, user):
"""
Оплатить заказ из кошелька клиента.
Обёртка над WalletService.pay_with_wallet.
Args:
order: Заказ для оплаты
amount: Сумма к списанию
user: Пользователь, инициирующий операцию
Returns:
Decimal: Фактически списанная сумма или None
"""
from customers.services.wallet_service import WalletService
return WalletService.pay_with_wallet(order, amount, user)
def adjust_wallet(self, amount, description, user):
"""
Корректировка баланса кошелька (для админа).
Обёртка над WalletService.adjust_balance.
Args:
amount: Сумма корректировки (может быть отрицательной)
description: Обязательное описание причины
user: Пользователь, выполняющий корректировку
Returns:
WalletTransaction: Созданная транзакция
"""
from customers.services.wallet_service import WalletService
return WalletService.adjust_balance(self.pk, amount, description, user)
@property
def wallet_transactions_history(self):
"""
История транзакций кошелька клиента.
Returns:
QuerySet: WalletTransaction для этого клиента
"""
return self.wallet_transactions.all()
class WalletTransaction(models.Model):
"""