#!/usr/bin/env python3
"""Merchant addresses, not user addresses or physical-device/SMS acceptance."""
from pathlib import Path
import subprocess
import sys
import integrate_20261010 as tool
E = tool.AI + 'parallel-ai-store-address-crud-20261010/'

def verify():
    for name in ['compare.py', 'test_compare.py']:
        subprocess.run([sys.executable, str(tool.ROOT / E / name)], check=True, capture_output=True)
    clean = tool.load(E + 'cleanup.json')
    assert not clean['user_address_rows_touched'] and not clean['region_rows_changed']
    assert not clean['shared_cache_accessed_or_cleared'] and not clean['same_named_primary_keys_assumed_foreign_keys']
    for label, port in [('B', 18321), ('C', 18322)]:
        r = clean[label]
        assert r['fresh_pdo_owned_store_address_rows'] == r['private_cache_files'] == 0
        assert r['natural_address_and_region_full_sha_unchanged'] and r['tokens_absent']
        assert r['private_region_cache_absent'] and not r[f'port_{port}_listening']

def targets():
    data = tool.load(E + 'comparison.json')
    assert data['http_pairs'] == 38 and data['independent_original_pairs'] == 14
    out = []
    for actual in data['actual_methods']:
        method, path = actual.split(' ', 1)
        out.append(dict(repo='ai_api', method=method, path=path, module='商家地址配置',
            terminal='设备端' if path.startswith('/terminal/') else 'PC端',
            role='private-own-two-tenants-address-configuration', risk='read' if method == 'GET' else 'configuration-write',
            scope='ai-primary-own-store-address-readonly-region-private-File-cache-no-SMS',
            evidence=E + 'REPORT.md', request_type='GET-query' if method == 'GET' else 'application/json-form-numeric-identifiers',
            parity='partial-evidence-38-complete-wire-pairs-14-original-proofs-and-3835-region-rows',
            boundary_empty_min_max='partial-evidence-leading-zero-phone-region-change-zero-other-empty-sequence',
            duplicate_retry='not-tested'))
    assert len(out) == 10
    return out

if __name__ == '__main__':
    tool.main(targets(), Path(__file__).with_name('integration-20261010-batch11.json'), verify)
