#!/usr/bin/env python3
from __future__ import annotations
import json
import subprocess
from pathlib import Path

BASE = Path(__file__).resolve().parent
prices_path = BASE / "stripe_prices.json"
if not prices_path.exists():
    raise SystemExit("stripe_prices.json is missing. Run sync_catalog.py first.")

prices = json.loads(prices_path.read_text())
if not prices:
    raise SystemExit("stripe_prices.json is empty. Run sync_catalog.py first.")

links = []
for row in prices:
    cmd = [
        "stripe", "payment_links", "create",
        f"--line-items[0][price]={row['price_id']}",
        "--line-items[0][quantity]=1",
        f"--metadata[sku]={row['sku']}",
        "--metadata[dev]=DEV3",
    ]
    result = subprocess.run(cmd, capture_output=True, text=True)
    if result.returncode != 0:
        raise SystemExit(f"Command failed: {' '.join(cmd)}\n\nSTDERR:\n{result.stderr}\nSTDOUT:\n{result.stdout}")
    payload = json.loads(result.stdout)
    payload["sku"] = row["sku"]
    payload["price_id"] = row["price_id"]
    links.append(payload)

(BASE / "stripe_payment_links.json").write_text(json.dumps(links, indent=2))
print(f"Created {len(links)} payment links for DEV3.")
