"""도구 검색 실습용 준비: 조회 함수, 조회 자료, 도구 정의."""


def get_stock(product_name: str) -> dict:
    """상품의 현재 재고 조회."""
    inventory = {"무선 마우스": 7, "기계식 키보드": 0, "USB 허브": 12}
    return {"product_name": product_name, "stock": inventory.get(product_name)}


def get_delivery(order_id: str) -> dict:
    """주문 번호로 배송 상태 조회."""
    deliveries = {"A101": "배송 중", "A102": "배송 완료"}
    return {"order_id": order_id, "status": deliveries.get(order_id)}


tool_definitions = [
    {
        "type": "function",
        "function": {
            "name": "get_stock",
            "defer_loading": True,
            "description": "상품 이름으로 현재 재고 수량을 조회한다.",
            "parameters": {
                "type": "object",
                "properties": {"product_name": {"type": "string", "description": "상품 이름"}},
                "required": ["product_name"],
                "additionalProperties": False,
            },
        },
    },
    {
        "type": "function",
        "function": {
            "name": "get_delivery",
            "defer_loading": True,
            "description": "주문 번호로 현재 배송 상태를 조회한다.",
            "parameters": {
                "type": "object",
                "properties": {"order_id": {"type": "string", "description": "주문 번호"}},
                "required": ["order_id"],
                "additionalProperties": False,
            },
        },
    },
]
function_dict = {"get_stock": get_stock, "get_delivery": get_delivery}
