from engine import *
import json

jr = sunrise(1844,10,15); js = sunset(1844,10,15)
sr_h = jd_to_lmt_hours(jr); ss_h = jd_to_lmt_hours(js)
print('sunrise', hms(sr_h), 'sunset', hms(ss_h), 'daylength h', ss_h-sr_h)

# Gulika: Tuesday -> day parts: Ma, Bu, Gu, Śu, Śa(5th), Sū, Ca, (Ma)  — 8 parts of day
part = (js-jr)/8
gul_start = jr + 4*part          # Saturn's part begins (5th part, index 4)
gul_end   = jr + 5*part
print('Saturn part (Gulika) start LMT', hms(jd_to_lmt_hours(gul_start)), 'end', hms(jd_to_lmt_hours(gul_end)))
gul_lon_start = asc(gul_start)[0]; gul_lon_end = asc(gul_end)[0]
print('Gulika (start-of-part rule, BPHS/Gulikotpatti):', fmt(gul_lon_start), nak(gul_lon_start))
print('Mandi (end-of-part rule):', fmt(gul_lon_end), nak(gul_lon_end))

rows=[]
for sec in range(int(9*3600+15*60), int(10*3600+25*60), 30):
    h = sec/3600
    hh=int(h); mm=int((h-hh)*60); ss=sec-hh*3600-mm*60
    j = jd_lmt(1844,10,15,hh,mm,ss)
    a = asc(j)[0]; su = pos(j,swe.SUN)[0]; mo = pos(j,swe.MOON)[0]
    lord,bal = dasa_balance(mo)
    # Pranapada: Sun in Tula (movable) -> k=0
    secs_since_rise = (j - jr)*86400
    pp = (su + secs_since_rise/12.0) % 360
    pp_house = ((int(pp//30) - int(a//30)) % 12) + 1
    kunda = (a*81) % 360
    kn = nak(kunda)
    rows.append(dict(t=hms(h), lagna=a, lagna_s=fmt_short(a), moon=mo, moon_s=fmt_short(mo), bal=bal,
                     d9=SIGNS[varga(a,9)], d10=SIGNS[varga(a,10)], d12=SIGNS[varga(a,12)], d60=SIGNS[varga(a,60)],
                     d3=SIGNS[varga(a,3)], d7=SIGNS[varga(a,7)], d24=SIGNS[varga(a,24)], d30=SIGNS[varga(a,30)],
                     pp=pp, pp_s=fmt_short(pp), pp_house=pp_house, kunda_nak=kn[0], kunda_idx=kn[2]))
json.dump(rows, open('window.json','w'), ensure_ascii=False, indent=0)
for r in rows[::4]:
    print(r['t'], r['lagna_s'], 'D9',r['d9'],'D10',r['d10'],'D12',r['d12'],'D60',r['d60'], '| Moon',r['moon_s'],'bal',round(r['bal'],3), '| PP',r['pp_s'],'H',r['pp_house'], '| Kunda',r['kunda_nak'])
