From 9a30a42db53b6514781ed1a8c73561e0febbd9cb Mon Sep 17 00:00:00 2001 From: imperosol Date: Tue, 1 Sep 2026 11:07:43 +0200 Subject: [PATCH] add created_at column to Subscription --- .../0017_subscription_created_at.py | 47 +++++++++++++++++++ subscription/models.py | 8 ++++ 2 files changed, 55 insertions(+) create mode 100644 subscription/migrations/0017_subscription_created_at.py diff --git a/subscription/migrations/0017_subscription_created_at.py b/subscription/migrations/0017_subscription_created_at.py new file mode 100644 index 00000000..b9cadbac --- /dev/null +++ b/subscription/migrations/0017_subscription_created_at.py @@ -0,0 +1,47 @@ +# Generated by Django 5.2.17 on 2026-09-01 08:44 +from typing import TYPE_CHECKING + +import django.utils.timezone +from django.db import migrations, models +from django.db.migrations.state import StateApps +from django.db.models import F, Min, Value +from django.db.models.functions import Least +from django.utils.timezone import now + +if TYPE_CHECKING: + import subscription.models + + +def make_default_creation_date(apps: StateApps, schema_editor): + Subscription = apps.get_model("subscription", "Subscription") + Subscription.objects.update( + created_at=Least( + F("subscription_start"), Value(now()), output_field=models.DateTimeField() + ) + ) + + +class Migration(migrations.Migration): + dependencies = [("subscription", "0016_alter_subscription_subscription_type")] + + operations = [ + migrations.AddField( + model_name="subscription", + name="created_at", + field=models.DateTimeField( + auto_now_add=True, + default=django.utils.timezone.now, + help_text=( + "When this subscription was created. " + "This date may differ from the start of the subscription." + ), + verbose_name="created_at", + ), + preserve_default=False, + ), + migrations.RunPython( + make_default_creation_date, + reverse_code=migrations.RunPython.noop, + elidable=True, + ), + ] diff --git a/subscription/models.py b/subscription/models.py index 08e11774..b86db75a 100644 --- a/subscription/models.py +++ b/subscription/models.py @@ -64,6 +64,14 @@ class Subscription(models.Model): max_length=20, verbose_name=_("location"), ) + created_at = models.DateTimeField( + _("created_at"), + help_text=_( + "When this subscription was created. " + "This date may differ from the start of the subscription." + ), + auto_now_add=True, + ) class Meta: ordering = ["subscription_start"]