import json, sys
path = '/var/www/html/peta/storage/app/propertylab-catalogue-match/review/r2_batch_01_in.jsonl'
start = int(sys.argv[1]) if len(sys.argv) > 1 else 0
end = int(sys.argv[2]) if len(sys.argv) > 2 else 10**9
with open(path) as f:
    lines = f.readlines()
for i, line in enumerate(lines):
    if i < start or i >= end:
        continue
    c = json.loads(line)
    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 ""))
    for cand in c['catalogue_candidates']:
        ex = {k: v for k, v in cand.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 = cand.get('same_listing_also_as')
        ratio = ''
        if cand.get('price_median') and r.get('median_price_rm'):
            ratio = f" ratio={r['median_price_rm']/cand['price_median']:.2f}"
        print(f"   k{cand['k']}: {cand['name']} | {cand['area']}, {cand['state']} | type={cand['type']} | d={cand['dist_m']} | psf={cand['psf_median']} | price={cand['price_median']}{ratio} | yr={cand['completion_year']} | {cand['sale_status']} | {cand['tenure']}" + (f" | ALSO={also}" if also else "") + (f" | EX={ex}" if ex else ""))
    other = {k: v for k, v in c.items() if k not in ('case','realtycheck','catalogue_candidates')}
    if other:
        print("   OTHER:", other)
