# Generated by Django 6.0.6 on 2026-08-04 21:32

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


def create_flags_for_seeded_competitions(apps, schema_editor):
    """RBIHF/CEHL (0017's data migration) predate the flag field -- give them one
    each so they're actually selectable (unflagged competitions never show up
    in the Event admin's dropdown) instead of silently invisible."""
    Competition = apps.get_model("events", "Competition")
    Flag = apps.get_model(*settings.WAFFLE_FLAG_MODEL.split("."))

    for competition in Competition.objects.filter(flag__isnull=True):
        flag, _created = Flag.objects.get_or_create(name=competition.name)
        competition.flag = flag
        competition.save(update_fields=["flag"])


def noop(apps, schema_editor):
    pass


class Migration(migrations.Migration):

    dependencies = [
        ('events', '0017_auto_20260804_2322'),
        migrations.swappable_dependency(settings.WAFFLE_FLAG_MODEL),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='competition',
            options={'ordering': ['name'], 'verbose_name': 'competition', 'verbose_name_plural': 'competitions'},
        ),
        migrations.AddField(
            model_name='competition',
            name='flag',
            field=models.ForeignKey(blank=True, help_text="Which clubs this competition is offered to -- set (or leave blank to hide it everywhere) from the control panel's Features page. A competition with no flag never shows up on the Event admin's competition dropdown.", null=True, on_delete=django.db.models.deletion.PROTECT, related_name='competitions', to=settings.WAFFLE_FLAG_MODEL, verbose_name='feature flag'),
        ),
        migrations.RunPython(create_flags_for_seeded_competitions, noop),
    ]
