"""Plan a wizard prompt through the selected host interaction boundary."""
from __future__ import annotations

from dataclasses import dataclass

from okstra_ctl.domain.host import HostSessionContext
from okstra_ctl.domain.wizard.interaction import InteractionPlan, WizardPrompt
from okstra_ctl.ports import InteractionPort


@dataclass(frozen=True)
class PlannedWizardPrompt:
    prompt: WizardPrompt
    interaction: InteractionPlan


def plan_prompt(
    prompt: WizardPrompt,
    context: HostSessionContext,
    interaction_port: InteractionPort,
) -> PlannedWizardPrompt:
    return PlannedWizardPrompt(
        prompt=prompt,
        interaction=interaction_port.plan(prompt, context),
    )
