from django.core.cache import cache
from django.db.models.signals import post_delete, post_save
from django.dispatch import receiver

from .models import GeneratedResume, ResumeAnalytics


@receiver(post_save, sender=GeneratedResume)
def create_resume_analytics(sender, instance, created, **kwargs):
    if created:
        ResumeAnalytics.objects.get_or_create(resume=instance)


@receiver(post_save, sender=GeneratedResume)
@receiver(post_delete, sender=GeneratedResume)
def invalidate_dashboard_after_resume(sender, instance, **kwargs):
    cache.delete(f"dashboard_stats:{instance.student.user_id}")
