|
@@ -1,4 +1,4 @@
|
|
|
-# Generated by Django 4.1.3 on 2022-11-04 10:06
|
|
|
|
|
|
|
+# Generated by Django 4.1.3 on 2022-11-06 13:16
|
|
|
|
|
|
|
|
from django.db import migrations, models
|
|
from django.db import migrations, models
|
|
|
import django.db.models.deletion
|
|
import django.db.models.deletion
|
|
@@ -46,6 +46,23 @@ class Migration(migrations.Migration):
|
|
|
"ordering": ("name", "type"),
|
|
"ordering": ("name", "type"),
|
|
|
},
|
|
},
|
|
|
),
|
|
),
|
|
|
|
|
+ migrations.CreateModel(
|
|
|
|
|
+ name="RawExpense",
|
|
|
|
|
+ fields=[
|
|
|
|
|
+ (
|
|
|
|
|
+ "id",
|
|
|
|
|
+ models.BigAutoField(
|
|
|
|
|
+ auto_created=True,
|
|
|
|
|
+ primary_key=True,
|
|
|
|
|
+ serialize=False,
|
|
|
|
|
+ verbose_name="ID",
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ("name", models.CharField(max_length=150)),
|
|
|
|
|
+ ("date", models.DateField()),
|
|
|
|
|
+ ("amount", models.DecimalField(decimal_places=2, max_digits=10)),
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
migrations.CreateModel(
|
|
migrations.CreateModel(
|
|
|
name="Source",
|
|
name="Source",
|
|
|
fields=[
|
|
fields=[
|
|
@@ -67,28 +84,47 @@ class Migration(migrations.Migration):
|
|
|
},
|
|
},
|
|
|
),
|
|
),
|
|
|
migrations.CreateModel(
|
|
migrations.CreateModel(
|
|
|
- name="OnlineSource",
|
|
|
|
|
|
|
+ name="LoneExpense",
|
|
|
fields=[
|
|
fields=[
|
|
|
(
|
|
(
|
|
|
- "source_ptr",
|
|
|
|
|
|
|
+ "rawexpense_ptr",
|
|
|
models.OneToOneField(
|
|
models.OneToOneField(
|
|
|
auto_created=True,
|
|
auto_created=True,
|
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
|
parent_link=True,
|
|
parent_link=True,
|
|
|
primary_key=True,
|
|
primary_key=True,
|
|
|
serialize=False,
|
|
serialize=False,
|
|
|
|
|
+ to="expenses.rawexpense",
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ ("created_at", models.DateTimeField(auto_now_add=True, null=True)),
|
|
|
|
|
+ ("modified_at", models.DateTimeField(auto_now=True)),
|
|
|
|
|
+ (
|
|
|
|
|
+ "category",
|
|
|
|
|
+ models.ForeignKey(
|
|
|
|
|
+ on_delete=django.db.models.deletion.PROTECT,
|
|
|
|
|
+ related_name="%(app_label)s_%(class)s_related",
|
|
|
|
|
+ to="expenses.category",
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ (
|
|
|
|
|
+ "source",
|
|
|
|
|
+ models.ForeignKey(
|
|
|
|
|
+ on_delete=django.db.models.deletion.PROTECT,
|
|
|
|
|
+ related_name="%(app_label)s_%(class)s_related",
|
|
|
to="expenses.source",
|
|
to="expenses.source",
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
- ("url", models.URLField()),
|
|
|
|
|
],
|
|
],
|
|
|
options={
|
|
options={
|
|
|
- "abstract": False,
|
|
|
|
|
|
|
+ "verbose_name": "LoneExpense",
|
|
|
|
|
+ "verbose_name_plural": "LoneExpenses",
|
|
|
|
|
+ "ordering": ("name", "date", "amount"),
|
|
|
},
|
|
},
|
|
|
- bases=("expenses.source",),
|
|
|
|
|
|
|
+ bases=("expenses.rawexpense", models.Model),
|
|
|
),
|
|
),
|
|
|
migrations.CreateModel(
|
|
migrations.CreateModel(
|
|
|
- name="PhysicalSource",
|
|
|
|
|
|
|
+ name="OnlineSource",
|
|
|
fields=[
|
|
fields=[
|
|
|
(
|
|
(
|
|
|
"source_ptr",
|
|
"source_ptr",
|
|
@@ -101,8 +137,7 @@ class Migration(migrations.Migration):
|
|
|
to="expenses.source",
|
|
to="expenses.source",
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
- ("latitude", models.FloatField()),
|
|
|
|
|
- ("longitude", models.FloatField()),
|
|
|
|
|
|
|
+ ("url", models.URLField()),
|
|
|
],
|
|
],
|
|
|
options={
|
|
options={
|
|
|
"abstract": False,
|
|
"abstract": False,
|
|
@@ -110,45 +145,29 @@ class Migration(migrations.Migration):
|
|
|
bases=("expenses.source",),
|
|
bases=("expenses.source",),
|
|
|
),
|
|
),
|
|
|
migrations.CreateModel(
|
|
migrations.CreateModel(
|
|
|
- name="RawExpense",
|
|
|
|
|
|
|
+ name="PhysicalSource",
|
|
|
fields=[
|
|
fields=[
|
|
|
(
|
|
(
|
|
|
- "id",
|
|
|
|
|
- models.BigAutoField(
|
|
|
|
|
|
|
+ "source_ptr",
|
|
|
|
|
+ models.OneToOneField(
|
|
|
auto_created=True,
|
|
auto_created=True,
|
|
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
|
|
+ parent_link=True,
|
|
|
primary_key=True,
|
|
primary_key=True,
|
|
|
serialize=False,
|
|
serialize=False,
|
|
|
- verbose_name="ID",
|
|
|
|
|
- ),
|
|
|
|
|
- ),
|
|
|
|
|
- ("created_at", models.DateTimeField(auto_now_add=True, null=True)),
|
|
|
|
|
- ("modified_at", models.DateTimeField(auto_now=True)),
|
|
|
|
|
- ("name", models.CharField(max_length=150)),
|
|
|
|
|
- ("date", models.DateField()),
|
|
|
|
|
- ("amount", models.DecimalField(decimal_places=2, max_digits=10)),
|
|
|
|
|
- (
|
|
|
|
|
- "category",
|
|
|
|
|
- models.OneToOneField(
|
|
|
|
|
- on_delete=django.db.models.deletion.PROTECT,
|
|
|
|
|
- related_name="%(app_label)s_%(class)s_related",
|
|
|
|
|
- to="expenses.category",
|
|
|
|
|
- ),
|
|
|
|
|
- ),
|
|
|
|
|
- (
|
|
|
|
|
- "source",
|
|
|
|
|
- models.OneToOneField(
|
|
|
|
|
- on_delete=django.db.models.deletion.PROTECT,
|
|
|
|
|
- related_name="%(app_label)s_%(class)s_related",
|
|
|
|
|
to="expenses.source",
|
|
to="expenses.source",
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
|
|
+ ("latitude", models.FloatField()),
|
|
|
|
|
+ ("longitude", models.FloatField()),
|
|
|
],
|
|
],
|
|
|
options={
|
|
options={
|
|
|
"abstract": False,
|
|
"abstract": False,
|
|
|
},
|
|
},
|
|
|
|
|
+ bases=("expenses.source",),
|
|
|
),
|
|
),
|
|
|
migrations.CreateModel(
|
|
migrations.CreateModel(
|
|
|
- name="MultiplePaymentExepense",
|
|
|
|
|
|
|
+ name="Expense",
|
|
|
fields=[
|
|
fields=[
|
|
|
(
|
|
(
|
|
|
"id",
|
|
"id",
|
|
@@ -159,65 +178,49 @@ class Migration(migrations.Migration):
|
|
|
verbose_name="ID",
|
|
verbose_name="ID",
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
- ("created_at", models.DateTimeField(auto_now_add=True, null=True)),
|
|
|
|
|
- ("modified_at", models.DateTimeField(auto_now=True)),
|
|
|
|
|
- ("name", models.CharField(max_length=150)),
|
|
|
|
|
- ("first_payment_date", models.DateField()),
|
|
|
|
|
- ("amount", models.DecimalField(decimal_places=2, max_digits=10)),
|
|
|
|
|
- ("number_of_payment", models.PositiveIntegerField()),
|
|
|
|
|
- (
|
|
|
|
|
- "category",
|
|
|
|
|
- models.OneToOneField(
|
|
|
|
|
- on_delete=django.db.models.deletion.PROTECT,
|
|
|
|
|
- related_name="%(app_label)s_%(class)s_related",
|
|
|
|
|
- to="expenses.category",
|
|
|
|
|
- ),
|
|
|
|
|
- ),
|
|
|
|
|
|
|
+ ("object_id", models.PositiveIntegerField()),
|
|
|
(
|
|
(
|
|
|
- "payments",
|
|
|
|
|
|
|
+ "content_type",
|
|
|
models.ForeignKey(
|
|
models.ForeignKey(
|
|
|
- on_delete=django.db.models.deletion.PROTECT,
|
|
|
|
|
- related_name="multiple_payment_expense",
|
|
|
|
|
- to="expenses.rawexpense",
|
|
|
|
|
- ),
|
|
|
|
|
- ),
|
|
|
|
|
- (
|
|
|
|
|
- "source",
|
|
|
|
|
- models.OneToOneField(
|
|
|
|
|
- on_delete=django.db.models.deletion.PROTECT,
|
|
|
|
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
related_name="%(app_label)s_%(class)s_related",
|
|
related_name="%(app_label)s_%(class)s_related",
|
|
|
- to="expenses.source",
|
|
|
|
|
|
|
+ to="contenttypes.contenttype",
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
],
|
|
],
|
|
|
options={
|
|
options={
|
|
|
- "abstract": False,
|
|
|
|
|
|
|
+ "verbose_name": "Expense",
|
|
|
|
|
+ "verbose_name_plural": "Expenses",
|
|
|
},
|
|
},
|
|
|
),
|
|
),
|
|
|
migrations.CreateModel(
|
|
migrations.CreateModel(
|
|
|
- name="Expense",
|
|
|
|
|
|
|
+ name="MultiplePaymentExepense",
|
|
|
fields=[
|
|
fields=[
|
|
|
(
|
|
(
|
|
|
- "id",
|
|
|
|
|
- models.BigAutoField(
|
|
|
|
|
|
|
+ "loneexpense_ptr",
|
|
|
|
|
+ models.OneToOneField(
|
|
|
auto_created=True,
|
|
auto_created=True,
|
|
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
|
|
+ parent_link=True,
|
|
|
primary_key=True,
|
|
primary_key=True,
|
|
|
serialize=False,
|
|
serialize=False,
|
|
|
- verbose_name="ID",
|
|
|
|
|
|
|
+ to="expenses.loneexpense",
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
- ("object_id", models.PositiveIntegerField()),
|
|
|
|
|
|
|
+ ("number_of_payment", models.PositiveIntegerField()),
|
|
|
(
|
|
(
|
|
|
- "content_type",
|
|
|
|
|
- models.ForeignKey(
|
|
|
|
|
- on_delete=django.db.models.deletion.CASCADE,
|
|
|
|
|
- to="contenttypes.contenttype",
|
|
|
|
|
|
|
+ "payments",
|
|
|
|
|
+ models.ManyToManyField(
|
|
|
|
|
+ related_name="multiple_payment_expense",
|
|
|
|
|
+ to="expenses.rawexpense",
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
],
|
|
],
|
|
|
options={
|
|
options={
|
|
|
- "verbose_name": "Expense",
|
|
|
|
|
- "verbose_name_plural": "Expenses",
|
|
|
|
|
|
|
+ "verbose_name": "MultiplePaymentExpense",
|
|
|
|
|
+ "verbose_name_plural": "MultiplePaymentExpenses",
|
|
|
|
|
+ "ordering": ("name", "date", "amount"),
|
|
|
},
|
|
},
|
|
|
|
|
+ bases=("expenses.loneexpense",),
|
|
|
),
|
|
),
|
|
|
]
|
|
]
|