From 68ff2c8520871ab8570ecf903622ca76759f5056 Mon Sep 17 00:00:00 2001 From: PCoder Date: Wed, 12 Jun 2019 07:29:49 +0200 Subject: [PATCH] Add model for failed invoices -- FailedInvoice --- hosting/models.py | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/hosting/models.py b/hosting/models.py index 3df69c99..e1bcdd63 100644 --- a/hosting/models.py +++ b/hosting/models.py @@ -1,11 +1,11 @@ import json import logging import os -import pytz +from datetime import datetime +import pytz from Crypto.PublicKey import RSA from dateutil.relativedelta import relativedelta -from datetime import datetime from django.db import models from django.utils import timezone from django.utils.functional import cached_property @@ -718,3 +718,29 @@ class UserCardDetail(AssignPermissionsMixin, models.Model): return ucd except UserCardDetail.DoesNotExist: return None + + +class FailedInvoice(AssignPermissionsMixin, models.Model): + permissions = ('view_failedinvoice',) + stripe_customer = models.ForeignKey(StripeCustomer) + order = models.ForeignKey( + HostingOrder, null=True, blank=True, default=None, + on_delete=models.SET_NULL + ) + created_at = models.DateTimeField(auto_now_add=True) + number_of_attempts = models.IntegerField( + default=0, + help_text="The number of attempts for repayment") + invoice_id = models.CharField( + unique=True, + max_length=127, + help_text= "The ID of the invoice that failed") + result = models.IntegerField( + help_text="Whether the service was interrupted or another payment " + "succeeded" + ) + service_interrupted_at = models.DateTimeField( + help_text="The datetime if/when service was interrupted" + ) + +