"""
Сигналы для пользователей.
"""
from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
from django.core.cache import cache

from .models import MentorStudentConnection


def _invalidate_manage_clients_cache(mentor_id):
    """Очистить кеш manage/clients для ментора (после удаления/изменения связи)."""
    for page in range(1, 10):
        for size in [10, 20, 50, 100, 1000]:
            cache.delete(f'manage_clients_{mentor_id}_{page}_{size}')


@receiver(post_delete, sender=MentorStudentConnection)
def mentor_student_connection_deleted(sender, instance, **kwargs):
    """При удалении связи — очистить кеш списка клиентов ментора."""
    if instance.mentor_id:
        _invalidate_manage_clients_cache(instance.mentor_id)


@receiver(post_save, sender=MentorStudentConnection)
def mentor_student_connection_changed(sender, instance, created, **kwargs):
    """При изменении связи — очистить кеш (статус и т.д.)."""
    if instance.mentor_id:
        _invalidate_manage_clients_cache(instance.mentor_id)

