from pathlib import Path

root = Path(__file__).resolve().parents[1]
document = (root / 'public/business-document.php').read_text(encoding='utf-8')
qr = (root / 'app/DocumentQr.php').read_text(encoding='utf-8')
verify = (root / 'public/document-verify.php').read_text(encoding='utf-8')
app = (root / 'public/app.php').read_text(encoding='utf-8')
installer = (root / 'public/install.php').read_text(encoding='utf-8')

checks = {
    'zatca tlv tags 1-5': "1=>$sellerName" in qr and "5=>number_format((float)$vat" in qr and 'base64_encode($payload)' in qr,
    'tax invoice qr': 'DocumentQr::zatcaTlv' in document and 'بيانات ZATCA الأساسية' in document,
    'customer claim qr': "type === 'customer-claim'" in document and "DocumentQr::verificationUrl('customer-claim'" in document,
    'subcontract claim qr': "type === 'subcontract-claim'" in document and "DocumentQr::verificationUrl('subcontract-claim'" in document,
    'local qr dependency': 'assets/vendor/qrcode-generator/qrcode.js' in document and 'https://' not in document.split('<script src=')[1].split('</body>')[0],
    'signed public verification': 'hash_hmac' in qr and 'hash_equals' in qr and 'المستند مطابق للسجل الإلكتروني' in verify,
    'fresh install secret': 'DOCUMENT_QR_KEY=' in installer and 'random_bytes(32)' in installer,
    'claim print controls': "documentPrintButton('customer-claim'" in app and "documentPrintButton('subcontract-claim'" in app,
}
failed = [name for name, ok in checks.items() if not ok]
if failed:
    raise SystemExit('FAILED: ' + ', '.join(failed))
print('OK: ZATCA invoice QR, signed claim verification QR, local rendering, and print controls verified')
