# Generated by Django 3.1 on 2023-08-08 19:55

from django.db import migrations, models
import django.db.models.deletion
from django.db import connection


class Migration(migrations.Migration):
    dependencies = [
        ('api', '0016_business_manager_email'),
    ]

    def set_my_defaults(apps, schema_editor):
        with connection.cursor() as cursor:
            cursor.execute("SELECT id FROM api_business")
            busin = cursor.fetchone()
            if busin:
                default_id = busin[0]

            cursor.execute("SELECT api_salerecord.id, api_customer.business_id "
                           "FROM api_salerecord "
                           "LEFT OUTER JOIN api_customer ON api_salerecord.customer_id = api_customer.id")
            for customer_business in cursor.fetchall():
                id = customer_business[0]
                business_id = customer_business[1] if customer_business[1] else default_id
                cursor.execute("UPDATE api_salerecord SET business_id = %s WHERE id = %s", [business_id, id])

    def reverse_func(apps, schema_editor):
        pass  # code for reverting migration, if any

    operations = [
        migrations.AddField(
            model_name='salerecord',
            name='business',
            field=models.ForeignKey(null=True,
                                    on_delete=django.db.models.deletion.CASCADE, to='api.business'),
            preserve_default=False,
        ),
        migrations.RunPython(set_my_defaults, reverse_func),
        migrations.AlterField(
            model_name='salerecord',
            name='business',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.business'),
            preserve_default=False,
        ),
    ]
