from typing import Dict, Optional, Type, Any

from messageprocessor import MessageProcessor


class BaseRouteDefinition:
    def __init__(
        self,
        processor_type: Optional[Type[MessageProcessor]] = None,
        params: Dict[str, Any] = None,
    ):
        self.processor_type = processor_type
        self.params = params or {}

    def __str__(self):
        values = [
            f"Processor: {self.processor_type}",
        ]
        return " - ".join(values)
