# from django.contrib.auth.backends import BaseBackend
# from accounts.models import Cliente

# class ClienteAuthBackend(BaseBackend):
#     def authenticate(self, request, email=None, password=None, **kwargs):
#         try:
#             user = Cliente.objects.get(email=email)
#             if user.check_password(password):
#                 return user
#         except Cliente.DoesNotExist:
#             return None

#     def get_user(self, user_id):
#         try:
#             return Cliente.objects.get(pk=user_id)
#         except Cliente.DoesNotExist:
#             return None
from django.contrib.auth.backends import BaseBackend
from accounts.models import Cliente

class ClienteAuthBackend(BaseBackend):
    def authenticate(self, request, email=None, password=None, **kwargs):
        try:
            cliente = Cliente.objects.get(email=email)

            if cliente.password is None:
                print(f"❌ Cliente {email} has no password set.")
                return None

            if cliente.check_password(password):  # ✅ Properly compare the password
                print(f"✅ Cliente {email} authenticated successfully.")
                return cliente
            else:
                print(f"❌ Cliente {email} password does not match.")
                return None

        except Cliente.DoesNotExist:
            print(f"❌ Cliente {email} not found in database.")
            return None

    def get_user(self, user_id):
        try:
            return Cliente.objects.get(pk=user_id)
        except Cliente.DoesNotExist:
            return None

