import asyncio


async def workflow_agent_notify_flow(client, customer_id: str, acc_id: str, acc_type: str, system_hint: str):
    """图片处理完成后，让客服 AI 生成自然话术发给客户。"""
    if not client.enable_agent or not client.agent:
        return
    try:
        from core.pydantic_ai_agent import CustomerMessage

        notify_msg = CustomerMessage(
            msg_id="workflow_notify",
            acc_id=acc_id,
            msg=system_hint,
            from_id=customer_id,
            from_name="",
            cy_id=customer_id,
            acc_type=acc_type,
            msg_type=0,
            cy_name="",
        )
        response = await client.agent.process_message(notify_msg)
        if response.should_reply and response.reply:
            nonsense_patterns = [
                "无需", "流程已完成", "不需要回复", "无需额外", "已完成",
                "无需回复", "不需要额外", "已经完成", "无需再", "操作已完成",
                "任务完成", "流程完成", "记录完成", "报价已",
            ]
            if not any(p in response.reply for p in nonsense_patterns):
                fake_data = {
                    "acc_id": acc_id,
                    "from_id": customer_id,
                    "from_name": "",
                    "cy_id": customer_id,
                    "acc_type": acc_type,
                }
                await asyncio.sleep(0.5)
                await client.send_reply(fake_data, response.reply)
                client.logger.info(f"[Workflow] AI 通知已发送: {response.reply}")
    except Exception as e:
        client.logger.error(f"[Workflow] AI 通知生成失败: {e}")


async def workflow_send_flow(
    client,
    customer_id: str,
    acc_id: str,
    acc_type: str,
    content: str,
    msg_type: int = 0,
):
    """workflow 回调：图片AI完成后用此方法推送消息给客户。"""
    msg = {
        "msg_id": "",
        "acc_id": acc_id,
        "msg": content,
        "from_id": customer_id,
        "from_name": customer_id,
        "cy_id": customer_id,
        "acc_type": acc_type,
        "msg_type": msg_type,
        "cy_name": customer_id,
    }
    await client.send_message(msg)
