Добавлены методы-обёртки для работы с кошельком в модель Customer
This commit is contained in:
@@ -216,6 +216,49 @@ class Customer(models.Model):
|
|||||||
)
|
)
|
||||||
return customer, created
|
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):
|
class WalletTransaction(models.Model):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user