from __future__ import annotations

from analogai.deepthink.messaging.commands import RememberCommand, SearchCommand
from analogai.deepthink.messaging.flows.chat_flow import ChatFlow
from analogai.deepthink.messaging.question_answering.question_routing_service import (
    QuestionRoutingService,
)


class ChatFlowBuilder:
    def __init__(
        self,
        input_router: QuestionRoutingService,
        remember_command: RememberCommand,
        search_command: SearchCommand,
    ):
        self._input_router = input_router
        self._remember_command = remember_command
        self._search_command = search_command

    def create(self) -> ChatFlow:
        return ChatFlow(
            input_router=self._input_router,
            remember_command=self._remember_command,
            search_command=self._search_command,
        )
