from allauth.socialaccount.adapter import DefaultSocialAccountAdapter
from voters.services import voter_get_or_create_profile

class AwardsSocialAccountAdapter(DefaultSocialAccountAdapter):
    def save_user(self, request, sociallogin, form=None):
        """
        Cette méthode est appelée par Allauth juste après 
        la création de l'utilisateur via Google.
        """
        # 1. On laisse Allauth créer l'utilisateur normalement
        user = super().save_user(request, sociallogin, form)
        
        # 2. On appelle notre SERVICE de manière EXPLICITE
        # On peut même passer l'IP ici facilement
        ip = request.META.get('REMOTE_ADDR')
        voter_get_or_create_profile(user=user, ip=ip)
        
        return user