feat(billing): Add is_expired field to TopupAdmin and TopupSerializer for better topup management

This commit is contained in:
2025-07-04 16:31:47 +05:00
parent 638c32cb80
commit d4b26074e6
2 changed files with 12 additions and 0 deletions

View File

@ -26,8 +26,11 @@ class TopupAdmin(admin.ModelAdmin):
"paid", "paid",
"paid_at", "paid_at",
"created_at", "created_at",
"is_expired",
"expires_at",
"updated_at", "updated_at",
) )
search_fields = ( search_fields = (
"user__first_name", "user__first_name",
"user__last_name", "user__last_name",
@ -35,6 +38,10 @@ class TopupAdmin(admin.ModelAdmin):
"user__mobile", "user__mobile",
) )
@admin.display(boolean=True, description="Expired")
def is_expired(self, obj):
return obj.is_expired
admin.site.register(Payment, PaymentAdmin) admin.site.register(Payment, PaymentAdmin)
admin.site.register(BillFormula) admin.site.register(BillFormula)

View File

@ -21,6 +21,7 @@ class UpdatePaymentSerializer(serializers.ModelSerializer):
class TopupSerializer(serializers.ModelSerializer): class TopupSerializer(serializers.ModelSerializer):
user = serializers.SerializerMethodField() user = serializers.SerializerMethodField()
is_expired = serializers.SerializerMethodField()
def get_user(self, obj): def get_user(self, obj):
user = obj.user user = obj.user
@ -33,6 +34,9 @@ class TopupSerializer(serializers.ModelSerializer):
} }
return None return None
def get_is_expired(self, obj):
return obj.is_expired
class Meta: # type: ignore class Meta: # type: ignore
model = Topup model = Topup
fields = [ fields = [
@ -41,6 +45,7 @@ class TopupSerializer(serializers.ModelSerializer):
"user", "user",
"paid", "paid",
"mib_reference", "mib_reference",
"is_expired",
"created_at", "created_at",
"updated_at", "updated_at",
] ]