# Generated by Django 5.0.1 on 2026-02-16 12:01

from django.db import migrations, models


def populate_member_ids(apps, schema_editor):
    """Assign member IDs to all existing members that don't have one."""
    Member = apps.get_model('members', 'Member')
    for i, member in enumerate(Member.objects.order_by('id'), start=1):
        if not member.member_id:
            member.member_id = f'KTT-{i:04d}'
            member.save(update_fields=['member_id'])


class Migration(migrations.Migration):

    dependencies = [
        ('members', '0004_add_password_reset_required'),
    ]

    operations = [
        # Step 1: Add field without unique constraint
        migrations.AddField(
            model_name='member',
            name='member_id',
            field=models.CharField(blank=True, default='', max_length=20, verbose_name='Member ID'),
        ),
        # Step 2: Populate existing rows
        migrations.RunPython(populate_member_ids, migrations.RunPython.noop),
        # Step 3: Add unique constraint
        migrations.AlterField(
            model_name='member',
            name='member_id',
            field=models.CharField(blank=True, max_length=20, unique=True, verbose_name='Member ID'),
        ),
    ]
