import os

from django.conf import settings
from django.core.files import File

from vbv_lernwelt.media_files.models import ContentImage, UserImage


def delete_default_images():
    """deletes all  images"""
    if "prod" in settings.APP_ENVIRONMENT:
        raise Exception("This command must not be used in production environment")
    ContentImage.objects.all().delete()
    UserImage.objects.all().delete()


def create_default_images():
    create_default_content_images()
    create_default_user_images()


def create_default_content_images():
    path = os.path.join(
        os.path.dirname(os.path.abspath(__file__)), "./tests/test_images/"
    )

    images = [
        ("bike_accident.jpg", "Bike Accident"),
        ("car_accident.jpg", "Car Accident"),
    ]

    for filename, title in images:
        file_path = os.path.join(path, filename)
        with open(file_path, "rb") as f:
            image, _ = ContentImage.objects.get_or_create(
                title=title,
                file=File(f, name=filename),
                focal_point_x=600,
                focal_point_y=600,
                focal_point_width=300,
                focal_point_height=300,
            )
            image.tags.set(("Fahrzeug", "Unfall", "Vermittler"))
            image.save()


def create_default_user_images():
    path = os.path.join(
        os.path.dirname(os.path.abspath(__file__)), "./tests/test_images/"
    )
    filename, title = ("user1_profile.jpg", "User1 Profile")
    file_path = os.path.join(path, filename)

    with open(file_path, "rb") as f:
        image, _ = UserImage.objects.get_or_create(
            title=title,
            file=File(f, name=filename),
            focal_point_x=600,
            focal_point_y=600,
            focal_point_width=300,
            focal_point_height=300,
        )
        image.save()
