from django.db.models import Count
from .models import Vote

def has_user_voted_in_category(voter_hash: str, categorie_id: str) -> bool:
    return Vote.objects.filter(voter_hash=voter_hash, categorie_id=categorie_id).exists()

def get_results_by_event(event_id):
    """Calcule les voix pour chaque candidat d'un événement."""
    return Vote.objects.filter(evenement_id=event_id) \
        .values('categorie__nom', 'candidat__nom_complet') \
        .annotate(total=Count('id')) \
        .order_by('categorie', '-total')