@@ -90,12 +90,20 @@ class Customer(models.Model):
9090 vat = VATINField (
9191 validators = [validate_vatin ],
9292 blank = True ,
93+ null = True ,
9394 default = "" ,
9495 verbose_name = gettext_lazy ("European VAT ID" ),
9596 help_text = gettext_lazy (
9697 "Please fill in European Union VAT ID, leave blank if not applicable."
9798 ),
9899 )
100+ vat_validated = models .DateTimeField (blank = True , null = True , db_index = True )
101+ vat_validation_state = models .PositiveSmallIntegerField (
102+ db_index = True ,
103+ )
104+ vat_validation_error = models .JSONField (
105+ default = dict , blank = True , encoder = DjangoJSONEncoder
106+ )
99107 tax = models .CharField (
100108 max_length = 200 ,
101109 blank = True ,
@@ -222,6 +230,7 @@ class Payment(models.Model):
222230 CURRENCY_BTC = 1
223231 CURRENCY_USD = 2
224232 CURRENCY_CZK = 3
233+ CURRENCY_GBP = 4
225234
226235 uuid = models .UUIDField (primary_key = True , default = uuid .uuid4 , editable = False )
227236 amount = models .IntegerField ()
@@ -231,6 +240,7 @@ class Payment(models.Model):
231240 (CURRENCY_BTC , "BTC" ),
232241 (CURRENCY_USD , "USD" ),
233242 (CURRENCY_CZK , "CZK" ),
243+ (CURRENCY_GBP , "GBP" ),
234244 ),
235245 default = CURRENCY_EUR ,
236246 )
@@ -255,14 +265,15 @@ class Payment(models.Model):
255265 details = models .JSONField (default = dict , blank = True , encoder = DjangoJSONEncoder )
256266 # Payment extra information from the origin
257267 extra = models .JSONField (default = dict , blank = True , encoder = DjangoJSONEncoder )
258- customer = models .ForeignKey (Customer , on_delete = models .deletion .CASCADE )
268+ customer = models .ForeignKey (Customer , on_delete = models .deletion .PROTECT )
259269 repeat = models .ForeignKey (
260- "Payment" , on_delete = models .deletion .CASCADE , null = True , blank = True
270+ "Payment" , on_delete = models .deletion .PROTECT , null = True , blank = True
261271 )
262272 invoice = models .CharField (max_length = 20 , blank = True , default = "" )
263273 amount_fixed = models .BooleanField (blank = True , default = False )
264274 start = models .DateField (blank = True , null = True )
265275 end = models .DateField (blank = True , null = True )
276+ card_info = models .JSONField (default = dict , blank = True )
266277
267278 class Meta :
268279 ordering = ["-created" ]
0 commit comments