from core.ppt_generator.state import GenPPTState
from core.ppt_generator.thought_to_ppt.graph import generate_slides_app


async def generate_slides_node(state: GenPPTState):
    """ generate ppt by thought and content """
    deep_report = state.get("deep_report", "")
    images = state.get("images", [])
    if deep_report:
        is_markdown_doc = True
        ori_doc = deep_report
    else:
        is_markdown_doc = False
        ori_doc = state["references"]

    ppt_query = f"{state['request']}\nPPT写作思路如下:\n{state['thought']}"
    task_payload = {
        "query": ppt_query,
        "ori_doc": ori_doc,
        "is_markdown_doc": is_markdown_doc,
        "images": images,
        "render_mode": state.get("render_mode", "svg"),
        "style_pack_dir": state.get("style_pack_dir", ""),
    }

    return await generate_slides_app.ainvoke(task_payload)