from typing import NamedTuple, NewType

from rvpc.auth.tokens.typing import ValidationResult


Hashid = NewType("Hashid", str)


class PasswordValidated(ValidationResult):
    def __init__(self, username: str):
        self.username = username


class PasswordValidationError(ValidationResult):
    def __init__(self, reason: str):
        self.reason = reason


DecryptedContent = NamedTuple(
    "DecryptedContent", [("sender", str), ("recipient", str), ("msg", str)]
)
