hosted/wlhosted/payments/migrations/0001_squashed_0031_alter_payment_uuid.py
2026-04-10 12:21:07 +02:00

234 lines
8.2 KiB
Python

# Generated by Django 6.0.4 on 2026-04-10 10:20
import uuid
import django.core.serializers.json
import django.db.models.deletion
import django.utils.timezone
import django_countries.fields
import vies.models
import weblate.utils.validators
from django.db import migrations, models
import wlhosted.payments.validators
class Migration(migrations.Migration):
replaces = [
("payments", "0001_squashed_0024_rename_details_new_payment_details_and_more"),
("payments", "0025_alter_payment_uuid"),
("payments", "0026_alter_customer_address_alter_customer_city_and_more"),
("payments", "0027_customer_address_2_customer_postcode_and_more"),
("payments", "0028_customer_created"),
("payments", "0029_customer_end_client_customer_note"),
("payments", "0030_customer_zammad_id"),
("payments", "0031_alter_payment_uuid"),
]
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="Customer",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"vat",
vies.models.VATINField(
blank=True,
default="",
help_text="Please fill in European Union VAT ID, leave blank if not applicable.",
max_length=14,
validators=[wlhosted.payments.validators.validate_vatin],
verbose_name="European VAT ID",
),
),
(
"name",
models.CharField(
default="",
max_length=200,
verbose_name="Company or individual name",
),
),
(
"address",
models.CharField(
default="", max_length=200, verbose_name="Address"
),
),
(
"city",
models.CharField(
default="", max_length=200, verbose_name="Postcode and city"
),
),
(
"country",
django_countries.fields.CountryField(
default="", max_length=2, verbose_name="Country"
),
),
(
"email",
models.EmailField(
blank=True,
max_length=190,
validators=[weblate.utils.validators.EmailValidator()],
),
),
("origin", models.URLField(max_length=300)),
("user_id", models.IntegerField()),
(
"tax",
models.CharField(
blank=True,
help_text="Please fill in your tax registration if it should appear on the invoice.",
max_length=200,
verbose_name="Tax registration",
),
),
(
"address_2",
models.CharField(
blank=True,
default="",
max_length=200,
verbose_name="Additional address information",
),
),
(
"postcode",
models.CharField(
default="", max_length=20, verbose_name="Postcode"
),
),
(
"created",
models.DateTimeField(
auto_now_add=True, default=django.utils.timezone.now
),
),
(
"end_client",
models.CharField(
blank=True,
default="",
max_length=200,
verbose_name="End client name",
),
),
("note", models.TextField(blank=True, verbose_name="Note")),
("zammad_id", models.IntegerField(default=0)),
],
options={
"verbose_name": "Customer",
"verbose_name_plural": "Customers",
},
),
migrations.CreateModel(
name="Payment",
fields=[
(
"uuid",
models.UUIDField(
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
),
),
("amount", models.IntegerField()),
("description", models.TextField()),
(
"recurring",
models.CharField(
blank=True,
choices=[
("y", "Annual"),
("b", "Biannual"),
("q", "Quarterly"),
("m", "Monthly"),
("", "One-time"),
],
default="",
max_length=10,
),
),
("created", models.DateTimeField(auto_now_add=True)),
("backend", models.CharField(blank=True, default="", max_length=100)),
(
"repeat",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="payments.payment",
),
),
("invoice", models.CharField(blank=True, default="", max_length=20)),
(
"customer",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="payments.customer",
),
),
(
"state",
models.IntegerField(
choices=[
(1, "New payment"),
(2, "Awaiting payment"),
(3, "Payment rejected"),
(4, "Payment accepted"),
(5, "Payment processed"),
],
db_index=True,
default=1,
),
),
("amount_fixed", models.BooleanField(blank=True, default=False)),
("end", models.DateField(blank=True, null=True)),
("start", models.DateField(blank=True, null=True)),
(
"currency",
models.IntegerField(
choices=[(0, "EUR"), (1, "BTC"), (2, "USD"), (3, "CZK")],
default=0,
),
),
(
"details",
models.JSONField(
blank=True,
default=dict,
encoder=django.core.serializers.json.DjangoJSONEncoder,
),
),
(
"extra",
models.JSONField(
blank=True,
default=dict,
encoder=django.core.serializers.json.DjangoJSONEncoder,
),
),
],
options={
"ordering": ["-created"],
"verbose_name": "Payment",
"verbose_name_plural": "Payments",
},
),
]