from datetime import datetime, timedelta
from predictor import generate_and_send_predictions
from config import LOTTERY_SCHEDULES

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

def run_prediction_job():
    now = datetime.now()
    current_time = now.time()
    print(f"🔮 [Cron Prediction Active] {now.strftime('%H:%M:%S')}")

    for sched in LOTTERY_SCHEDULES:
        sched_time = parse_time(sched)
        sched_dt = datetime.combine(now.date(), sched_time)
        
        # គណនាម៉ោងបោះតម្រុយ (មុន ៣០ នាទីចំៗ)
        pred_trigger_time = (sched_dt - timedelta(minutes=30)).time()

        # ប្រសិនបើតុល្យភាពម៉ោងបច្ចុប្បន្នចំម៉ោងមុន ៣០ នាទី (ចន្លោះ tolerance 4 នាទី)
        if pred_trigger_time.hour == current_time.hour and abs(pred_trigger_time.minute - current_time.minute) <= 4:
            print(f"🎯 កំពុងបោះតម្រុយ AI (វិភាគតាមប៉ុស្តិ៍ A, B, C, D) សម្រាប់ម៉ោង {sched}...")
            generate_and_send_predictions(sched)
            break

if __name__ == "__main__":
    run_prediction_job()