"""Custom exceptions for FastAPI Monitor."""


class MonitorError(Exception):
    """Base exception for FastAPI Monitor."""

    def __init__(self, message: str, details: str = None):
        self.message = message
        self.details = details
        super().__init__(self.message)


class DatabaseError(MonitorError):
    """Database-related errors."""
    pass


class ConfigurationError(MonitorError):
    """Configuration-related errors."""
    pass


class AuthenticationError(MonitorError):
    """Authentication-related errors."""
    pass


class ValidationError(MonitorError):
    """Data validation errors."""
    pass


class StorageError(DatabaseError):
    """Data storage errors."""
    pass


class ConnectionError(DatabaseError):
    """Database connection errors."""
    pass
