"""
Generador de tokens para confirmación de email — App Users
============================================================
Tokens seguros de un solo uso con expiración de 1 hora.
"""

from django.contrib.auth.tokens import PasswordResetTokenGenerator


class EmailConfirmationTokenGenerator(PasswordResetTokenGenerator):
    """
    Genera tokens para confirmar email de registro.
    Usa is_verified para invalidar el token tras confirmación.
    """

    def _make_hash_value(self, user, timestamp):
        return f"{user.pk}{timestamp}{user.is_verified}{user.email}"


email_confirmation_token = EmailConfirmationTokenGenerator()
