# Generated by Django 4.2.6 on 2023-10-30 13:16

import os
import sys
import shutil
import ram.utils
import bookshelf.models

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


def move_images(apps, schema_editor):
    sys.stdout.write("\n  Processing files. Please await...")
    for r in bookshelf.models.BaseBookImage.objects.all():
        fname = os.path.basename(r.image.path)
        new_image = bookshelf.models.book_image_upload(r, fname)
        new_path = os.path.join(settings.MEDIA_ROOT, new_image)
        os.makedirs(os.path.dirname(new_path), exist_ok=True)
        try:
            shutil.move(r.image.path, new_path)
        except FileNotFoundError:
            sys.stderr.write("  !! FileNotFoundError: {}\n".format(new_image))
            pass
        r.image.name = new_image
        r.save()


class Migration(migrations.Migration):
    dependencies = [
        ("bookshelf", "0008_alter_author_options_alter_publisher_options"),
    ]

    # Migration is stale and shouldn't be used since model hes been heavily
    # modified since then. Leaving it here for reference.
    operations = [
        #     migrations.AlterField(
        #         model_name="bookimage",
        #         name="image",
        #         field=models.ImageField(
        #             blank=True,
        #             null=True,
        #             storage=ram.utils.DeduplicatedStorage,
        #             upload_to=bookshelf.models.book_image_upload,
        #         ),
        #     ),
        #     migrations.RunPython(
        #         move_images,
        #         reverse_code=migrations.RunPython.noop
        #     ),
    ]
