from ..exceptions import LLMGenerationError
from ..prompts import questions_system_prompt
from ..providers.factory import get_provider
from ..schemas import SuggestQuestionsRequest


def suggest_questions(payload: SuggestQuestionsRequest) -> dict:
    system_prompt = questions_system_prompt(
        trip_spec=payload.trip_spec.model_dump() if payload.trip_spec else None,
        preferences=payload.preferences,
    )
    messages = [{"role": "user", "content": f"Trip brief: {payload.trip_brief}"}]

    try:
        return get_provider().complete_json(system_prompt, messages)
    except Exception as exc:
        raise LLMGenerationError("Failed to suggest questions", str(exc)) from exc
