"""Library-specific exceptions."""


class DomainError(Exception):
    """Raised when an error happens in the domain layer."""


class DomainValidationError(DomainError):
    """Raised when domain input is invalid."""


class NotFoundError(DomainError):
    """Raised when an entity is not found."""


class ForbiddenError(PermissionError):
    """Raised when access to a resource is forbidden."""


class UnauthorizedError(PermissionError):
    """Raised when authentication or authorization is invalid."""


class FeatureDisabledError(DomainError):
    """Raised when an operation is blocked by a disabled feature flag."""

