#!/usr/bin/env python3
import hashlib
import json
import subprocess
from pathlib import Path
import integrate_20261010 as tool
from integrate_20261011_batches46_48 import item
HERE=Path(__file__).resolve().parent
PRIVATE=Path('/Users/wiscourper/Documents/workspace/local/dm8-store-purchase-read3-20261012.L5dTYR/stage3')
BASE='work_store/apifox/2026-09-30-dm8-interface-acceptance/parallel-store-purchase-read3-20261012/'
REPORT=BASE+'ROOT_REVIEW_APPEND.md'
def verify():
    assert hashlib.sha256((PRIVATE/'manifest-append.json').read_bytes()).hexdigest()=='3ebeb0fe0bc059607cd1c566ab7e5b05f23410009757abaa2218349469f7b6f5'
    r=json.loads(subprocess.check_output(['node',str(PRIVATE/'audit-append.js'),'--readonly']))
    assert r['readonly'] and r['checks']==275 and r['assets']==125
def targets():
    out=[]
    for path in ['/p/Material/able','/p/Supplier/lists']:
        out.append(item('store','POST',path,BASE,evidence=REPORT,from_repo='unreviewed',from_source='apifox-2026-05-08',
            readback='partial-evidence-own-row-disable-enable-clock-and-nontarget-fields-or-own-supplier-full-list',
            parity='partial-evidence-own-source-complete-values-and-key-types-generated-identity-mapped',
            cleanup='own-rows-and-worker-retained-relevant-protection-unchanged'))
    for action in ['update','read','lists']:
        out.append(item('store','POST','/p/MaterialCategory/'+action,BASE,evidence=REPORT,evidence_only=True))
    return out
if __name__=='__main__':
    audit=HERE/'integration-20261012-batch114.json';assert not audit.exists()
    tool.main(targets(),audit,verify)
