from django.conf import settings
from django.dispatch import receiver
from django.db.models.signals import post_save

from . import models, tasks, utils


@receiver(post_save, sender=models.Video)
def post_save_video(sender, instance, created, **kwargs):
    if instance.status == models.PROGRESS and instance.local_file:
        tasks.send_video_to_s3.apply_async((instance.id,))


@receiver(post_save, sender=models.Playlist)
def post_save_playlist(sender, instance, created, **kwargs):
    if not instance.json or not instance.mrss:
        instance.json = f'{settings.DOMAIN_NAME}/api/playlist/{instance.id}/'
        instance.mrss = f'{settings.DOMAIN_NAME}/api/playlist/{instance.id}/mrss'
        instance.save()

    if instance.type == models.DYNAMIC:
        utils.add_video_to_new_playlist(instance)