# Generated by Django 5.2.11 on 2026-07-20 14:30

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


def forwards_map_verified_to_review_status(apps, schema_editor):
    KYCDocument = apps.get_model('accounts', 'KYCDocument')
    for doc in KYCDocument.objects.all().iterator():
        if doc.verified:
            doc.review_status = 'APPROVED'
        else:
            doc.review_status = 'PENDING'
        doc.save(update_fields=['review_status'])


def backwards_map_review_status_to_verified(apps, schema_editor):
    KYCDocument = apps.get_model('accounts', 'KYCDocument')
    for doc in KYCDocument.objects.all().iterator():
        doc.verified = doc.review_status == 'APPROVED'
        doc.save(update_fields=['verified'])


class Migration(migrations.Migration):

    dependencies = [
        ('accounts', '0020_avatar_url_vehicle_and_transporter'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AddField(
            model_name='kycdocument',
            name='review_notes',
            field=models.TextField(blank=True, help_text='Admin rejection reason or review comment.'),
        ),
        migrations.AddField(
            model_name='kycdocument',
            name='review_status',
            field=models.CharField(
                choices=[('PENDING', 'Pending'), ('APPROVED', 'Approved'), ('REJECTED', 'Rejected')],
                default='PENDING',
                max_length=20,
            ),
        ),
        migrations.AddField(
            model_name='kycdocument',
            name='reviewed_by',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name='reviewed_kyc_documents',
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterField(
            model_name='kycdocument',
            name='verified',
            field=models.BooleanField(default=False, help_text='Synced alias of review_status == APPROVED.'),
        ),
        migrations.RunPython(forwards_map_verified_to_review_status, backwards_map_review_status_to_verified),
    ]
