from django.db import migrations, models


def backfill_username(apps, schema_editor):
    """Existing accounts keep signing in with the same value: username = personnel_code."""
    User = apps.get_model("infrastructure", "User")
    for user in User.objects.filter(username__isnull=True).iterator():
        user.username = str(user.personnel_code).strip().lower()
        user.save(update_fields=["username"])


class Migration(migrations.Migration):

    dependencies = [
        ('infrastructure', '0002_workschedule'),
    ]

    operations = [
        migrations.AddField(
            model_name='user',
            name='mobile',
            field=models.CharField(blank=True, max_length=11, null=True, unique=True),
        ),
        migrations.AddField(
            model_name='user',
            name='mobile_verified_at',
            field=models.DateTimeField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='user',
            name='username',
            field=models.CharField(blank=True, max_length=50, null=True, unique=True),
        ),
        migrations.RunPython(backfill_username, migrations.RunPython.noop),
    ]
