from django.db import migrations, models


def backfill_application_methods(apps, schema_editor):
    Job = apps.get_model('jobs', 'Job')
    for job in Job.objects.all().iterator():
        methods = []
        if job.application_method:
            methods = [job.application_method]
        elif job.application_methods:
            methods = list(job.application_methods)
        if not methods:
            methods = ['email']
        job.application_methods = methods
        job.save(update_fields=['application_methods'])


class Migration(migrations.Migration):

    dependencies = [
        ('jobs', '0018_job_application_method'),
    ]

    operations = [
        migrations.AddField(
            model_name='job',
            name='application_methods',
            field=models.JSONField(
                blank=True,
                default=list,
                help_text='Selected application channels for this job (PezaJob, external, or both).',
            ),
        ),
        migrations.RunPython(backfill_application_methods, migrations.RunPython.noop),
    ]
