Skip to content

Commit 8a35b94

Browse files
committed
chore: sync model with website
1 parent 5b944c2 commit 8a35b94

2 files changed

Lines changed: 93 additions & 2 deletions

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Generated by Django 6.0.5 on 2026-05-20 08:03
2+
3+
import django.core.serializers.json
4+
import django.db.models.deletion
5+
import vies.models
6+
from django.db import migrations, models
7+
8+
import wlhosted.payments.validators
9+
10+
11+
class Migration(migrations.Migration):
12+
dependencies = [
13+
("payments", "0033_alter_customer_created"),
14+
]
15+
16+
operations = [
17+
migrations.AddField(
18+
model_name="customer",
19+
name="vat_validated",
20+
field=models.DateTimeField(blank=True, db_index=True, null=True),
21+
),
22+
migrations.AddField(
23+
model_name="customer",
24+
name="vat_validation_error",
25+
field=models.JSONField(
26+
blank=True,
27+
default=dict,
28+
encoder=django.core.serializers.json.DjangoJSONEncoder,
29+
),
30+
),
31+
migrations.AddField(
32+
model_name="customer",
33+
name="vat_validation_state",
34+
field=models.PositiveSmallIntegerField(db_index=True, default=0),
35+
preserve_default=False,
36+
),
37+
migrations.AddField(
38+
model_name="payment",
39+
name="card_info",
40+
field=models.JSONField(blank=True, default=dict),
41+
),
42+
migrations.AlterField(
43+
model_name="customer",
44+
name="vat",
45+
field=vies.models.VATINField(
46+
blank=True,
47+
default="",
48+
help_text="Please fill in European Union VAT ID, leave blank if not applicable.",
49+
max_length=14,
50+
null=True,
51+
validators=[wlhosted.payments.validators.validate_vatin],
52+
verbose_name="European VAT ID",
53+
),
54+
),
55+
migrations.AlterField(
56+
model_name="payment",
57+
name="currency",
58+
field=models.IntegerField(
59+
choices=[(0, "EUR"), (1, "BTC"), (2, "USD"), (3, "CZK"), (4, "GBP")],
60+
default=0,
61+
),
62+
),
63+
migrations.AlterField(
64+
model_name="payment",
65+
name="customer",
66+
field=models.ForeignKey(
67+
on_delete=django.db.models.deletion.PROTECT, to="payments.customer"
68+
),
69+
),
70+
migrations.AlterField(
71+
model_name="payment",
72+
name="repeat",
73+
field=models.ForeignKey(
74+
blank=True,
75+
null=True,
76+
on_delete=django.db.models.deletion.PROTECT,
77+
to="payments.payment",
78+
),
79+
),
80+
]

wlhosted/payments/models.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)