from analyzer import run_ai_engine
from db import execute_query
from telegram_bot import send_telegram_message
from datetime import datetime

def generate_and_send_predictions(draw_time):
    """
    ទាញយកលទ្ធផលពី AI Smart Engine រៀបចំសារតម្រុយ និងបោះចូល Telegram Channel
    """
    today_date = datetime.now().strftime('%Y-%m-%d')
    print(f"🔮 កំពុងគណនា និងរៀបចំសារតម្រុយសម្រាប់ម៉ោង {draw_time}...")

    # ១. ហៅ AI Smart Engine ឱ្យគណនាទស្សន៍ទាយលេខ 2D/3D
    predictions = run_ai_engine(draw_time)
    if not predictions:
        print("❌ មិនអាចទទួលបានទិន្នន័យទស្សន៍ទាយពី AI ទេ")
        return

    # ២. រៀបចំទម្រង់សារ Markdown សម្រាប់ Telegram
    msg = f"🔮 *តម្រុយឆ្នោតខ្មែរ (AI Smart Prediction)* 🔮\n"
    msg += f"📅 ថ្ងៃទី: `{today_date}` | ⏰ សម្រាប់ម៉ោង: `{draw_time}`\n"
    msg += f"----------------------------------\n"

    for prize, nums in predictions.items():
        pred_2d = nums['2d']
        pred_3d = nums['3d']

        # ពិនិត្យការពារការកត់ត្រាទិន្នន័យជាន់គ្នា ក្នុង Table ai_predictions
        check_query = """
            SELECT id FROM ai_predictions 
            WHERE prediction_date = %s AND draw_time = %s AND prize_type = %s
        """
        existing = execute_query(check_query, (today_date, draw_time, prize), fetch_one=True)

        if not existing:
            insert_query = """
                INSERT INTO ai_predictions (prediction_date, draw_time, prize_type, pred_2d, pred_3d, is_sent)
                VALUES (%s, %s, %s, %s, %s, 1)
            """
            execute_query(insert_query, (today_date, draw_time, prize, pred_2d, pred_3d), commit=True)

        # បន្ថែមជួរដេកតាមរង្វាន់ (A, B, C, D) ចូលក្នុងសារ
        msg += f"🔹 *រង្វាន់ {prize}* ➔ 2D: `{pred_2d}` | 3D: `{pred_3d}`\n"

    msg += f"----------------------------------\n"
    msg += f"⚠️ *បញ្ជាក់៖ លេខតម្រុយនេះបង្កើតដោយ AI Smart Engine ផ្អែកលើស្ថិតិ*"

    # ៣. ផ្ញើសារតម្រុយចូល Telegram Channel
    send_telegram_message(msg)
    print(f"✅ បានកត់ត្រា និងបោះសារតម្រុយម៉ោង {draw_time} ចូល Telegram រួចរាល់!")

if __name__ == "__main__":
    # តេស្តរត់បោះតម្រុយ
    generate_and_send_predictions("03:45 PM")