import json, sys
path = '/var/www/html/peta/storage/app/propertylab-catalogue-match/review/v_hr_03_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:
    for i, line in enumerate(f):
        if i < start or i >= end:
            continue
        c = json.loads(line)
        r = c['realtycheck']
        print(f"#{i} {c['case']} R: {r['name']} | {r['category']} | {r.get('state')} / {r.get('district')} / {r.get('mukim')} | prec={r.get('coord_precision')} | psf={r.get('psf')} | med={r.get('median_price_rm')}")
        extra = {k:v for k,v in r.items() if k not in ('name','category','state','district','mukim','coord_precision','psf','median_price_rm')}
        if extra:
            print(f"    R extra: {extra}")
        for cand in c['catalogue_candidates']:
            ratio = ''
            if cand.get('psf_median') and r.get('psf'):
                ratio = f" psfR/C={r['psf']/cand['psf_median']:.2f}"
            pr = ''
            if cand.get('price_median') and r.get('median_price_rm'):
                pr = f" prR/C={r['median_price_rm']/cand['price_median']:.2f}"
            extra = {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')}
            print(f"  k{cand['k']}: {cand['name']} | {cand.get('area')}, {cand.get('state')} | {cand.get('type')} | d={cand.get('dist_m')} | psf={cand.get('psf_median')} pr={cand.get('price_median')}{ratio}{pr} | yr={cand.get('completion_year')} {cand.get('sale_status')} {cand.get('tenure')}" + (f" | {extra}" if extra else ''))
        print()
