# Generated migration to remove duplicates and add unique constraint

from django.db import migrations


def remove_duplicates(apps, schema_editor):
    """Remove duplicate registrations keeping only the first one."""
    Registration = apps.get_model('events', 'Registration')
    seen = set()
    duplicates_to_delete = []

    for reg in Registration.objects.all().order_by('id'):
        key = (reg.tournament_id, reg.club, reg.team)
        if key in seen:
            duplicates_to_delete.append(reg.id)
        else:
            seen.add(key)

    if duplicates_to_delete:
        Registration.objects.filter(id__in=duplicates_to_delete).delete()


class Migration(migrations.Migration):
    dependencies = [
        ('events', '0005_event_registration_mail'),
    ]

    operations = [
        migrations.RunPython(remove_duplicates),
        migrations.AlterUniqueTogether(
            name='registration',
            unique_together={('tournament', 'club', 'team')},
        ),
    ]
