"""Identity-context domain errors (subclasses carry the exact Vietnamese messages)."""

from __future__ import annotations

from src.shared_kernel.errors import (
    AuthenticationError,
    AuthorizationError,
    ValidationError,
)


class InvalidInstitutionalEmail(ValidationError):
    """Email is not a valid @ump.edu.vn / @umc.edu.vn address."""


class WeakPassword(ValidationError):
    """Password failed the strength policy."""


class InvalidCredentials(AuthenticationError):
    """Email/password did not match an active account."""


class EmailNotVerified(AuthorizationError):
    """Account exists but the email has not been verified yet."""
