#!/usr/bin/env python3
"""
patch_tiers_final.py - wire format_tier_lots into ORDER PLACED message.
Exact indents confirmed via repr: Ticket line = 16 spaces, closing paren = 12.
"""
import sys, shutil, ast
from pathlib import Path

candidates=[
    Path(r"C:\Users\Administrator\OneDrive\fx_macro_intraday\src\execution\live_signal_monitor_v3.py"),
    Path(r"C:\Users\paul_\OneDrive\fx_macro_intraday\src\execution\live_signal_monitor_v3.py"),
]
target=next((c for c in candidates if c.exists()), None)
if target is None: print("ERROR: not found"); sys.exit(1)
print(f"Target: {target}")
shutil.copy2(target, target.with_suffix(".py.backup_tiersfinal"))

src=target.read_text(encoding="utf-8")

# Already wired?
if 'format_tier_lots(lot_size)\n            )' in src:
    print("Already wired. Nothing to do."); sys.exit(0)
if 'def format_tier_lots' not in src:
    print("ERROR: helper missing."); sys.exit(2)

# Exact block: 16-space Ticket line, 12-space closing paren
old = '                f"Ticket: {ticket}"\n            )'
new = ('                f"Ticket: {ticket}"\n'
       '                + "\\n" + format_tier_lots(lot_size)\n'
       '            )')

cnt = src.count(old)
print(f"Matches: {cnt}")
if cnt != 1:
    print("Not exactly 1 match. No change. (Check repr again.)")
    sys.exit(3)

src = src.replace(old, new, 1)
try:
    ast.parse(src); print("Syntax: OK")
except SyntaxError as e:
    print(f"SYNTAX ERROR: {e}"); sys.exit(4)
target.write_text(src, encoding="utf-8")
print("Message patched: True")
print("SUCCESS - verify, then restart the monitor.")
