# Generated by Django 3.1.5 on 2021-01-09 19:44

from django.db import migrations


def delete_duplicate_bookmarks(apps, schema_editor):
    """
    In this migration, a unique constraint is set on the fields `recipe` and `book`.
    If there are already duplicate entries, the migration will fail.
    Therefore all duplicate entries are deleted beforehand.
    """
    RecipeBookEntry = apps.get_model('cookbook', 'RecipeBookEntry')

    for row in RecipeBookEntry.objects.all():
        if RecipeBookEntry.objects.filter(recipe=row.recipe, book=row.book).count() > 1:
            row.delete()


class Migration(migrations.Migration):
    dependencies = [
        ('cookbook', '0095_auto_20210107_1804'),
    ]

    operations = [
        # run function to delete duplicated bookmarks
        migrations.RunPython(delete_duplicate_bookmarks),
        migrations.AlterUniqueTogether(
            name='recipebookentry',
            unique_together={('recipe', 'book')},
        ),
    ]
