# Generated by Copilot
# Maintained by Dinesh Kumar C (https://github.com/Dinesh210805/blender-mcp)
# Forked from original work by Siddharth Ahuja (https://github.com/ahujasid/blender-mcp)

"""Custom exceptions for Blender MCP."""

from typing import Optional


class BlenderMCPError(Exception):
    """Base exception for Blender MCP errors."""
    
    def __init__(self, message: str, error_code: Optional[str] = None):
        super().__init__(message)
        self.message = message
        self.error_code = error_code


class ConnectionError(BlenderMCPError):
    """Raised when connection to Blender fails."""
    pass


class ValidationError(BlenderMCPError):
    """Raised when input validation fails."""
    pass


class SecurityError(BlenderMCPError):
    """Raised when security checks fail."""
    pass


class TimeoutError(BlenderMCPError):
    """Raised when operations timeout."""
    pass


class BlenderOperationError(BlenderMCPError):
    """Raised when Blender operations fail."""
    pass


class AssetDownloadError(BlenderMCPError):
    """Raised when asset download fails."""
    pass
