"""Custom exceptions for paper analyzer."""


class PaperAnalyzerError(Exception):
    """Base exception for all paper analyzer errors."""

    def __init__(self, message: str, details: dict | None = None):
        super().__init__(message)
        self.message = message
        self.details = details or {}


class AnalysisError(PaperAnalyzerError):
    """Raised when paper analysis fails."""

    pass


class ConfigurationError(PaperAnalyzerError):
    """Raised when configuration is invalid."""

    pass


class NetworkError(PaperAnalyzerError):
    """Raised when network/API call fails."""

    pass


__all__ = [
    "AnalysisError",
    "ConfigurationError",
    "NetworkError",
    "PaperAnalyzerError",
]
