"""Remove UPCs/ISRCs from originating account contract term attachments.""" from __future__ import annotations from typing import Any from src import config from src.ows_response import parse_json_response def remove_upcs_from_originating_account( account_id: int, upcs: list[str], isrcs: list[str], ) -> dict[str, Any]: """Call DELETE /account/{id}/contract-terms/attachments/bulk on ows-royalties.""" config.logger.info( "Removing %d UPCs and %d ISRCs from account %d contract terms.", len(upcs), len(isrcs), account_id, ) resp = config.ows_client.delete( "ows-royalties", path=f"/account/{account_id}/contract-terms/attachments/bulk", json={"upcs": upcs, "isrcs": isrcs}, ) result: dict[str, Any] = parse_json_response("ows-royalties", resp) config.logger.info("Contract term attachment removal complete. total_removed=%d", result.get("total_removed", 0)) return result