Features: 1) Replace DigitalAssetDownload creation logic with get_or_create.

Fixes: 1) Remove unnecessary conditional check for DigitalAssetDownload existence.

Extra: 1) Simplify flow for processing order products with digital assets.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-10-29 12:43:12 +03:00
parent 0dc3daaa4f
commit 0cec8b0380

View file

@ -125,8 +125,7 @@ def process_order_changes(instance: Order, created: bool, **kwargs: dict[Any, An
if has_file:
order_product.status = "FINISHED"
if not order_product.download:
DigitalAssetDownload.objects.create(order_product=order_product)
DigitalAssetDownload.objects.get_or_create(order_product=order_product)
order_product.order.user.payments_balance.amount -= order_product.buy_price # type: ignore [union-attr, operator]
order_product.order.user.payments_balance.save() # type: ignore [union-attr]
order_product.save()