#!/usr/bin/env python3
"""Actual registered POST DB projection and original Word ZIP, not the PC GET."""
import hashlib
import importlib.util
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/nutrition-card-export203-20261013/runtime-overlay203')
BASE = 'work_store/apifox/2026-09-30-dm8-interface-acceptance/parallel-nutrition-card-20261013/'


def verify():
    for name, sha in [
        ('REPORT203.md', 'b30853f2a0f25bbc28ce9b65b8864764fab79fc1d1739eb7236b312d87f9bec7'),
        ('manifest203.json', '667fb4a66c18d3aef6fd3e5873305ad9bb09234a2bc3c98d91c6e311116baf5a'),
        ('verify203.php', '9903866b597b36dc42b6424e38433431cf557c0d00248816c494f9a0c3827454'),
    ]:
        assert hashlib.sha256((PRIVATE / name).read_bytes()).hexdigest() == sha
    assets = json.loads((PRIVATE / 'manifest203.json').read_text())['assets']
    assert len(assets) == 148
    for a in assets:
        p = PRIVATE / a['path']
        assert not p.is_symlink() and hashlib.sha256(p.read_bytes()).hexdigest() == a['sha256']
    r = json.loads(subprocess.check_output(['/opt/homebrew/opt/php@7.4/bin/php', str(PRIVATE / 'verify203.php')]))
    assert r['checks'] == 88 and r['offline_verifier_DB_SQL_HTTP'] == 0
    spec = importlib.util.spec_from_file_location('oracle203', PRIVATE / 'docx_oracle203R2.py')
    module = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(module)
    outputs = []
    for lane in ('B', 'C'):
        s = r['results'][lane]
        assert s['HTTP'] == 3 and s['wire_bytes'] == 337051 and s['source_fields'] == 23
        assert s['server_original_zip_equal'] and s['cleanup'] and s['other_DB_writes'] == 0
        v = module.oracle(lane, 'E203R2')
        assert v['wire_equals_zip'] and v['all_template_parts'] == 22 and v['all80_macro_values_exact']
        assert v['template_external_relationships'] == 0
        outputs.append(v['document_XML_SHA'])
    assert outputs == ['d89ba6a53b6273d393345fd3fe021748ff7fad1994ad1f48eed1a50cded595c9'] * 2


if __name__ == '__main__':
    audit = HERE / 'integration-20261013-batch203.json'
    assert not audit.exists(), 'Do not replay matrix integration'
    target = item('store', 'POST', '/p/bill/exportDishes', BASE,
        risk='original-Word-export-private-app_trace-false-not-PC-GET-or-OSS',
        success_case='partial-evidence-one-owned-zero-nutrient100g-real-Word-ZIP-download',
        readback='tested-pass-original23-field-projection-and104-owned-source-fields-unchanged',
        parity='partial-evidence-original-client-server-ZIP-equal-all22-OOXML-parts80-macros-source-correct',
        cleanup='own-workers-token-cache-tmp-output-zero-old195-fixtures-retained')
    tool.main([target], audit, verify)
