mirror of
https://gh.llkk.cc/https://github.com/WeblateOrg/hosted.git
synced 2026-07-22 18:23:36 +08:00
234 lines
8.2 KiB
Python
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",
|
|
},
|
|
),
|
|
]
|