From 081366f87f794207bda9184541143bb26ff1c71e Mon Sep 17 00:00:00 2001 From: i701 Date: Sat, 5 Jul 2025 17:37:04 +0500 Subject: [PATCH] =?UTF-8?q?feat(models):=20add=20status=20field=20to=20Top?= =?UTF-8?q?up=20model=20with=20choices=20for=20Pending,=20Paid,=20and=20Ca?= =?UTF-8?q?ncelled=20=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- billing/admin.py | 1 + billing/migrations/0011_topup_status.py | 25 +++++++++++++++++++++++++ billing/models.py | 9 +++++++++ 3 files changed, 35 insertions(+) create mode 100644 billing/migrations/0011_topup_status.py diff --git a/billing/admin.py b/billing/admin.py index 19fd08d..8241083 100644 --- a/billing/admin.py +++ b/billing/admin.py @@ -25,6 +25,7 @@ class TopupAdmin(admin.ModelAdmin): "amount", "paid", "paid_at", + "status", "created_at", "is_expired", "expires_at", diff --git a/billing/migrations/0011_topup_status.py b/billing/migrations/0011_topup_status.py new file mode 100644 index 0000000..8c7a1f3 --- /dev/null +++ b/billing/migrations/0011_topup_status.py @@ -0,0 +1,25 @@ +# Generated by Django 5.2 on 2025-07-05 12:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("billing", "0010_add_expiry_notification_sent_to_topup"), + ] + + operations = [ + migrations.AddField( + model_name="topup", + name="status", + field=models.CharField( + choices=[ + ("PENDING", "Pending"), + ("PAID", "Paid"), + ("CANCELLED", "Cancelled"), + ], + default="PENDING", + max_length=20, + ), + ), + ] diff --git a/billing/models.py b/billing/models.py index e73cbe0..814365a 100644 --- a/billing/models.py +++ b/billing/models.py @@ -52,6 +52,15 @@ class Topup(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="topups") paid = models.BooleanField(default=False) paid_at = models.DateTimeField(null=True, blank=True) + status = models.CharField( + max_length=20, + choices=[ + ("PENDING", "Pending"), + ("PAID", "Paid"), + ("CANCELLED", "Cancelled"), + ], + default="PENDING", + ) mib_reference = models.CharField(default="", null=True, blank=True) expires_at = models.DateTimeField(null=True, blank=True) expiry_notification_sent = models.BooleanField(default=False)