# Generated by Django 5.1.6 on 2025-10-15 05:52

from django.db import migrations, models

class Migration(migrations.Migration):

    dependencies = [
        ("extractly", "0016_rename_bathroom_number_ads_bathrooms_and_more"),
    ]

    operations = [
        # 0) Upewnij się, że kolumny pozwalają na NULL zanim spróbujemy wstawić NULL
        #    (poprzednio kolumny mogły mieć NOT NULL i typ boolean po błędnej migracji).
        migrations.RunSQL(
            sql="""
                ALTER TABLE extractly_ads        ALTER COLUMN archived_date DROP NOT NULL;
                ALTER TABLE extractly_adsmanual  ALTER COLUMN archived_date DROP NOT NULL;
            """,
            reverse_sql=migrations.RunSQL.noop,
        ),

        # 1) Wyczyść stare wartości (booleany / śmieci) do NULL,
        #    żeby ALTER TYPE na kolumnie przeszedł bez cast-errorów.
        migrations.RunSQL(
            sql="""
                UPDATE extractly_ads        SET archived_date = NULL;
                UPDATE extractly_adsmanual  SET archived_date = NULL;
            """,
            reverse_sql=migrations.RunSQL.noop,
        ),

        # 2) Zmień typ kolumn na DATE na poziomie bazy (bez auto-castu Django)
        migrations.RunSQL(
            sql="""
                ALTER TABLE extractly_ads        ALTER COLUMN archived_date TYPE date USING NULL::date;
                ALTER TABLE extractly_adsmanual  ALTER COLUMN archived_date TYPE date USING NULL::date;
            """,
            reverse_sql=migrations.RunSQL.noop,
        ),

        # 3) Zaktualizuj stan modeli w migracjach (bez wykonywania zmian w DB po raz drugi)
        migrations.SeparateDatabaseAndState(
            database_operations=[],
            state_operations=[
                migrations.AlterField(
                    model_name="ads",
                    name="archived_date",
                    field=models.DateField(blank=True, null=True),
                ),
                migrations.AlterField(
                    model_name="adsmanual",
                    name="archived_date",
                    field=models.DateField(blank=True, null=True),
                ),
            ],
        ),
    ]
