feat(client): add merge_bom_json method for assembly BOM merge #20

Merged
forbes merged 1 commits from feat/bom-sync-and-manifest into main 2026-02-19 20:26:52 +00:00

View File

@@ -803,6 +803,24 @@ class SiloClient:
pn = urllib.parse.quote(part_number, safe="")
return self._upload_ods(f"/items/{pn}/bom/merge", ods_bytes, filename)
def merge_bom_json(self, part_number: str, entries: list) -> Dict[str, Any]:
"""Submit a JSON BOM merge from assembly extraction.
Calls ``POST /api/items/{partNumber}/bom/merge`` with a JSON body
containing assembly-derived BOM entries. The server applies adds
and quantity changes, flags removed items as unreferenced, and
returns the diff.
Not used by Phase 1 (which calls add/update individually).
Ready for Phase 2 when the server endpoint ships.
"""
pn = urllib.parse.quote(part_number, safe="")
return self._request(
"POST",
f"/items/{pn}/bom/merge",
{"source": "assembly", "entries": entries},
)
# -- Schemas ------------------------------------------------------------
def list_schemas(self) -> list: