"""
Règles d'éligibilité pour l'accès au contenu réservé aux adhérents.
Source unique de vérité, utilisée par les views et les serializers.
"""


def is_eligible_for_adherent_content(request) -> bool:
    """
    True si la requête provient d'un user connecté ET dont l'adhésion
    est valide (membership_period non expirée).

    Utilisé pour gater le `content` des articles marqués `is_adherent=True`.
    """
    user = getattr(request, 'user', None)
    return bool(user and user.is_authenticated and user.is_membership_valid)
