from django.contrib.auth.tokens import PasswordResetTokenGenerator


class AccountTokenGenerator(PasswordResetTokenGenerator):
    key_salt = "users.password-reset.v1"

    def _make_hash_value(self, user, timestamp):
        return super()._make_hash_value(user, timestamp) + str(user.auth_version) + str(user.is_active)


class EmailVerificationTokenGenerator(AccountTokenGenerator):
    key_salt = "users.email-verification.v1"

    def _make_hash_value(self, user, timestamp):
        return super()._make_hash_value(user, timestamp) + str(user.is_email_verified)


password_reset_token = AccountTokenGenerator()
email_verification_token = EmailVerificationTokenGenerator()
