#!/usr/bin/env python3
import sys, json
kind = sys.argv[1] if len(sys.argv) > 1 else "chart"

if kind == "chart":
    days = [("Mon",42),("Tue",58),("Wed",51),("Thu",73),("Fri",96),("Sat",61),("Sun",47)]
    rows = [{"label":d,"value":v,"title":f"{d} · {v}","subtitle":"deploys / day"} for d,v in days]

elif kind == "table":
    data = [
        ("api-gateway","Go","up","124","2"),
        ("web-frontend","TS","up","301","0"),
        ("worker-queue","Rust","degraded","57","11"),
        ("billing-svc","Go","up","88","1"),
        ("search-index","Rust","down","203","42"),
    ]
    rows = [{"service":s,"lang":l,"status":st,"commits":c,"open_prs":p,
             "title":f"{s} · {st}","subtitle":f"{l} · {c} commits"} for s,l,st,c,p in data]

elif kind == "cards":
    data = [
        ("api-gateway","Go · :8080","healthy"),
        ("worker-queue","Rust · :9000","degraded"),
        ("search-index","Rust · :7700","down"),
        ("web-frontend","TS · :3000","up"),
        ("billing-svc","Go · :8090","healthy"),
        ("auth-svc","Go · :8091","pending"),
    ]
    rows = [{"name":n,"meta":m,"status":st,"title":f"{n} · {st}","subtitle":m} for n,m,st in data]

elif kind == "tiles":
    # KPI tiles: `cards` with `layout: tiles` (Settings, Labs, Rich widgets).
    rows = [
        {"label":"Open incidents","value":"3","unit":"","delta":"-2","since":"vs last week",
         "trend":[7,6,6,5,4,3],"title":"Open incidents · 3","subtitle":"down 2"},
        {"label":"Uptime","value":"99.94","unit":"%","delta":"+0.02","since":"30 days",
         "max":"100","title":"Uptime · 99.94%","subtitle":"30 days"},
        {"label":"p95 latency","value":"182","unit":"ms","delta":"+14","since":"vs yesterday",
         "trend":[150,160,171,168,175,182],"title":"p95 latency · 182ms","subtitle":"up 14"},
        {"label":"Error budget","value":"62","unit":"%","max":"100",
         "title":"Error budget · 62%","subtitle":"left this month"},
    ]

elif kind == "detail":
    rows = [{
        "service":"api-gateway","version":"2.14.0","region":"us-east-1",
        "replicas":"6","status":"healthy","uptime":"23d 4h","cpu":"31%",
        "memory":"1.8 GB / 4 GB","endpoint":"https://api.acme.com","owner":"platform-team",
        "title":"api-gateway","subtitle":"v2.14.0 · us-east-1 · healthy",
    }]

elif kind == "tree":
    rows = [{
        "title":"GET /api/user/42","subtitle":"200 OK · 84ms",
        "data":{
            "user":{"id":42,"name":"Ada Lovelace","active":True,
                    "roles":["admin","owner"],
                    "profile":{"email":"ada@acme.com","tz":"Europe/London","verified":True}},
            "session":{"token":"sk_live_…","expires_in":3600,"scopes":["read","write"]},
            "meta":{"request_id":"req_8f3","cached":False,"region":"eu-west-2"},
        },
    }]

elif kind == "diff":
    left = "\n".join([
        "region: us-east-1","replicas: 3","image: api:1.2.0",
        "tls: false","log_level: info","timeout: 30",
    ])
    right = "\n".join([
        "region: us-east-1","replicas: 5","image: api:1.3.1",
        "tls: true","log_level: info","timeout: 60","retries: 3",
    ])
    rows = [{"title":"prod vs staging","subtitle":"config drift","left":left,"right":right}]

else:
    rows = [{"title":f"unknown demo: {kind}","subtitle":"try chart|table|cards|tiles|detail|tree|diff"}]

print(json.dumps(rows))
