From 8657435fbf58eebddb21506ec7c0bb7afb178308 Mon Sep 17 00:00:00 2001 From: i701 Date: Tue, 8 Jul 2025 20:53:05 +0500 Subject: [PATCH] =?UTF-8?q?fix(payment):=20refine=20unpaid=20payment=20que?= =?UTF-8?q?ry=20to=20include=20status=20and=20expiration=20checks=20?= =?UTF-8?q?=F0=9F=90=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devices/serializers.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/devices/serializers.py b/devices/serializers.py index 8ae13ef..80ce6ff 100644 --- a/devices/serializers.py +++ b/devices/serializers.py @@ -2,6 +2,7 @@ from rest_framework import serializers from .models import Device from api.serializers import CustomReadOnlyUserSerializer from billing.models import Payment # Import the Payment model +from django.utils import timezone class CreateDeviceSerializer(serializers.ModelSerializer): @@ -48,7 +49,13 @@ class DeviceSerializer(serializers.ModelSerializer): def get_pending_payment_id(self, obj): # Query the last unpaid payment for the device unpaid_payment = ( - Payment.objects.filter(devices=obj, paid=False) + Payment.objects.filter( + devices=obj, + paid=False, + status="PENDING", + expires_at__gt=timezone.now(), + expires_at__isnull=True, + ) .order_by("-created_at") .first() )