from course.models import Course
from user.models import User
from django.utils import timezone

# Dictionnaire qui fait le lien entre les types d'abonnement et le nombre de cours autorisés
# À remplir selon vos besoins
SUBSCRIPTION_COURSE_LIMITS = {
    'FR': 15,  # Free
    'BS': 100,  # Basic
    'RV': 10000,  # Review
    'PR': 10000  # Premium
}

def course_limit_reached(user: User) -> bool:
    """
    Vérifie si l'utilisateur a atteint sa limite de cours en fonction de son abonnement.
    
    Args:
        user (User): L'utilisateur à vérifier
        
    Returns:
        bool: True si l'utilisateur n'a pas atteint sa limite de cours, False sinon
    """

    return False

    abonnement = user.abonnement_type
    
    # Récupérer le nombre de cours de l'utilisateur
    course_count = Course.objects.filter(user=user.publicIdentifier).count()

    if user.activated_packs:
        for pack in user.activated_packs:
            if timezone.datetime.strptime(pack['end_date'], '%Y-%m-%dT%H:%M:%S') > timezone.now():
                return False

    # Récupérer la limite de cours pour l'abonnement de l'utilisateur
    course_limit = SUBSCRIPTION_COURSE_LIMITS.get(abonnement)

    return course_count >= course_limit
