from datetime import datetime, timedelta
from result import process_and_broadcast_result
from config import LOTTERY_SCHEDULES

def parse_time(time_str):
    return datetime.strptime(time_str, "%I:%M %p").time()

def run_result_job():
    now = datetime.now()
    current_time = now.time()
    print(f"🔴 [Cron Result] Active at {now.strftime('%H:%M:%S')}")

    for sched in LOTTERY_SCHEDULES:
        sched_time = parse_time(sched)
        sched_dt = datetime.combine(now.date(), sched_time)

        # ចាប់យកលទ្ធផលពិត ចាប់ពីម៉ោងចេញ រហូតដល់ 15 នាទីក្រោយ
        result_start_time = sched_time
        result_end_time = (sched_dt + timedelta(minutes=15)).time()

        if result_start_time <= current_time <= result_end_time:
            print(f"🎯 កំពុងឆែកចាប់យកលទ្ធផលពិតម៉ោង {sched}...")
            process_and_broadcast_result(target_time=sched)

if __name__ == "__main__":
    run_result_job()