Files
2026-04-03 09:08:08 +09:00

44 lines
1.5 KiB
Python

from __future__ import annotations
from typing import Any
from civilplan_mcp.db.bootstrap import load_json_data
from civilplan_mcp.models import ProjectDomain
from civilplan_mcp.tools._base import wrap_response
def get_unit_prices(*, category: str | None = None, item_name: str | None = None, region: str = "경기도", year: int = 2026) -> dict[str, Any]:
prices = load_json_data("unit_prices_2026.json")["items"]
region_factors = load_json_data("region_factors.json")
factor = region_factors[region]["factor"]
filtered = []
for item in prices:
if category and item["category"] != category:
continue
if item_name and item_name not in item["item"]:
continue
filtered.append(
{
"category": item["category"],
"item": item["item"],
"spec": item["spec"],
"unit": item["unit"],
"base_price": item["base_price"],
"region_factor": factor,
"adjusted_price": round(item["base_price"] * factor),
"source": item["source"],
"note": f"{region} 지역계수 {factor:.2f} 적용",
"year": year,
}
)
return wrap_response(
{
"query": {"category": category, "item_name": item_name, "region": region, "year": year},
"results": filtered,
"region_factor_note": f"{region}: {factor:.2f}",
},
ProjectDomain.복합,
)