From e2ede37f4f96de4a338599e0270b1e8d6db6107e Mon Sep 17 00:00:00 2001 From: i701 Date: Wed, 9 Jul 2025 21:55:22 +0500 Subject: [PATCH] =?UTF-8?q?refactor(devices):=20update=20device=20payment?= =?UTF-8?q?=20status=20in=20background=20task=20and=20remove=20unused=20se?= =?UTF-8?q?rializer=20field=20=F0=9F=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- billing/tasks.py | 3 +++ devices/serializers.py | 16 ---------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/billing/tasks.py b/billing/tasks.py index 56977d3..ca77cd6 100644 --- a/billing/tasks.py +++ b/billing/tasks.py @@ -72,6 +72,9 @@ def update_expired_payments(timestamp: int): logger.info(f"Found {count} payments to expire.") for payment in expired_payments_qs: + for device in payment.devices.all(): + device.has_a_pending_payment = False + device.save() if ( payment.user and payment.user.mobile diff --git a/devices/serializers.py b/devices/serializers.py index 80ce6ff..5ef6471 100644 --- a/devices/serializers.py +++ b/devices/serializers.py @@ -32,7 +32,6 @@ class BlockDeviceSerializer(serializers.ModelSerializer): class DeviceSerializer(serializers.ModelSerializer): - pending_payment_id = serializers.SerializerMethodField() user = serializers.SerializerMethodField() def get_user(self, obj): @@ -46,21 +45,6 @@ class DeviceSerializer(serializers.ModelSerializer): } return None - def get_pending_payment_id(self, obj): - # Query the last unpaid payment for the device - unpaid_payment = ( - Payment.objects.filter( - devices=obj, - paid=False, - status="PENDING", - expires_at__gt=timezone.now(), - expires_at__isnull=True, - ) - .order_by("-created_at") - .first() - ) - return unpaid_payment.id if unpaid_payment else None - class Meta: # type: ignore model = Device fields = "__all__"