from django.db.models.signals import pre_delete, pre_save
from django.dispatch import receiver
from .models import CeremonyFile, Ceremony
from .utils import delete_ftp_file


# =========================
# CEREMONY FILE
# =========================

@receiver(pre_delete, sender=CeremonyFile)
def delete_files(sender, instance, **kwargs):
 

    if instance.file:
        delete_ftp_file(instance.file)

    if instance.poster:
        delete_ftp_file(instance.poster)

    if instance.poster_desktop:
        delete_ftp_file(instance.poster_desktop)

    if instance.thumbnail:
        delete_ftp_file(instance.thumbnail)


@receiver(pre_save, sender=CeremonyFile)
def update_files(sender, instance, **kwargs):

    if not instance.pk:
        return

    old = CeremonyFile.objects.get(pk=instance.pk)

    if old.file != instance.file and old.file:
        delete_ftp_file(old.file)

    if old.poster != instance.poster and old.poster:
        delete_ftp_file(old.poster)

    if old.poster_desktop != instance.poster_desktop and old.poster_desktop:
        delete_ftp_file(old.poster_desktop)

    if old.thumbnail != instance.thumbnail and old.thumbnail:
        delete_ftp_file(old.thumbnail)


# =========================
# CEREMONY POSTER ONLY
# =========================

@receiver(pre_delete, sender=Ceremony)
def delete_ceremony_poster(sender, instance, **kwargs):

 

    if instance.poster:
        delete_ftp_file(instance.poster)


@receiver(pre_save, sender=Ceremony)
def update_ceremony_poster(sender, instance, **kwargs):

    if not instance.pk:
        return

    old = Ceremony.objects.get(pk=instance.pk)

    if old.poster != instance.poster and old.poster:
 
        delete_ftp_file(old.poster)