import json, sys
path = "/var/www/html/peta/storage/app/propertylab-catalogue-match/review/r2_batch_05_in.jsonl"
cases = [json.loads(l) for l in open(path) if l.strip()]
start = int(sys.argv[1]) if len(sys.argv) > 1 else 0
end = int(sys.argv[2]) if len(sys.argv) > 2 else len(cases)
if len(sys.argv) == 1:
    print("TOTAL", len(cases))
for i, c in enumerate(cases[start:end], start):
    r = c["realtycheck"]
    extra = {k: v for k, v in r.items() if k not in ("name","category","state","district","mukim","coord_precision","psf","median_price_rm")}
    print(f"=== [{i}] {c['case']} | R: {r['name']} | {r['category']} | {r['state']}/{r['district']}/{r['mukim']} | prec={r['coord_precision']} | psf={r['psf']} | med={r['median_price_rm']}" + (f" | EXTRA={extra}" if extra else ""))
    ck = [k for k in c.keys() if k not in ("case","realtycheck","catalogue_candidates")]
    if ck:
        print("   CASE-EXTRA:", {k: c[k] for k in ck})
    for cd in c["catalogue_candidates"]:
        ex = {k: v for k, v in cd.items() if k not in ("k","name","area","state","type","dist_m","psf_median","price_median","completion_year","sale_status","tenure","same_listing_also_as")}
        also = cd.get("same_listing_also_as")
        ratio = ""
        if cd.get("price_median") and r.get("median_price_rm"):
            ratio = f" ratio={r['median_price_rm']/cd['price_median']:.2f}"
        print(f"   k{cd['k']}: {cd['name']} | {cd['area']}, {cd['state']} | type={cd['type']} | d={cd['dist_m']} | psf={cd['psf_median']} | med={cd['price_median']}{ratio} | yr={cd['completion_year']} | {cd['sale_status']} | {cd['tenure']}" + (f" | ALSO={also}" if also else "") + (f" | EX={ex}" if ex else ""))
