from django.db import migrations, models
from django.utils import timezone


def backfill_password_changed_at(apps, schema_editor):
    User = apps.get_model("contract", "User")
    for user in User.objects.filter(password_changed_at__isnull=True).only("id", "date_joined"):
        user.password_changed_at = user.date_joined or timezone.now()
        user.save(update_fields=["password_changed_at"])


class Migration(migrations.Migration):

    dependencies = [
        ("contract", "0036_rename_contract_ap_recipie_c4b1c8_idx_contract_ap_recipie_7d6c9d_idx"),
    ]

    operations = [
        migrations.AddField(
            model_name="user",
            name="force_password_change",
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name="user",
            name="password_changed_at",
            field=models.DateTimeField(blank=True, null=True),
        ),
        migrations.RunPython(backfill_password_changed_at, migrations.RunPython.noop),
    ]
