|
|
@@ -0,0 +1,214 @@
|
|
|
+# Generated by Django 4.1.3 on 2022-11-03 14:53
|
|
|
+
|
|
|
+from django.db import migrations, models
|
|
|
+import django.db.models.deletion
|
|
|
+
|
|
|
+
|
|
|
+class Migration(migrations.Migration):
|
|
|
+
|
|
|
+ initial = True
|
|
|
+
|
|
|
+ dependencies = []
|
|
|
+
|
|
|
+ operations = [
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="Category",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "id",
|
|
|
+ models.BigAutoField(
|
|
|
+ auto_created=True,
|
|
|
+ primary_key=True,
|
|
|
+ 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)),
|
|
|
+ (
|
|
|
+ "type",
|
|
|
+ models.CharField(
|
|
|
+ choices=[
|
|
|
+ ("Fixed", "Fixed expense"),
|
|
|
+ ("Variable", "Variable expense"),
|
|
|
+ ],
|
|
|
+ default="Variable",
|
|
|
+ max_length=20,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "verbose_name": "Category",
|
|
|
+ "verbose_name_plural": "Categories",
|
|
|
+ "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(
|
|
|
+ name="Source",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "id",
|
|
|
+ models.BigAutoField(
|
|
|
+ auto_created=True,
|
|
|
+ primary_key=True,
|
|
|
+ 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)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "abstract": False,
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="OnlineSource",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "source_ptr",
|
|
|
+ models.OneToOneField(
|
|
|
+ auto_created=True,
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ parent_link=True,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ to="expenses.source",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("url", models.URLField()),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "abstract": False,
|
|
|
+ },
|
|
|
+ bases=("expenses.source",),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="PhysicalSource",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "source_ptr",
|
|
|
+ models.OneToOneField(
|
|
|
+ auto_created=True,
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ parent_link=True,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ to="expenses.source",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("latitude", models.FloatField()),
|
|
|
+ ("longitude", models.FloatField()),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "abstract": False,
|
|
|
+ },
|
|
|
+ bases=("expenses.source",),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="MultiplePaymentExepense",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "id",
|
|
|
+ models.BigAutoField(
|
|
|
+ auto_created=True,
|
|
|
+ primary_key=True,
|
|
|
+ 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)),
|
|
|
+ ("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",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ (
|
|
|
+ "payments",
|
|
|
+ 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,
|
|
|
+ related_name="%(app_label)s_%(class)s_related",
|
|
|
+ to="expenses.source",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "abstract": False,
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="Expense",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "rawexpense_ptr",
|
|
|
+ models.OneToOneField(
|
|
|
+ auto_created=True,
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ parent_link=True,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ to="expenses.rawexpense",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("created_at", models.DateTimeField(auto_now_add=True, null=True)),
|
|
|
+ ("modified_at", models.DateTimeField(auto_now=True)),
|
|
|
+ (
|
|
|
+ "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",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "verbose_name": "Expense",
|
|
|
+ "verbose_name_plural": "Expenses",
|
|
|
+ "ordering": ("name", "date", "amount"),
|
|
|
+ },
|
|
|
+ bases=("expenses.rawexpense", models.Model),
|
|
|
+ ),
|
|
|
+ ]
|