# bot/webhook_server.py

from flask import Flask, request
from telegram import Update, Bot
from telegram.ext import Application
import threading
import os
import logging

logger = logging.getLogger(__name__)
app = Flask(__name__)

# 전역 변수로 할당 (초기화는 app.py에서)
application: Application = None
bot: Bot = None

@app.route('/webhook', methods=['POST'])
def webhook():
    try:
        data = request.get_json(force=True)
        logger.info(f"📩 Webhook 데이터 수신: {data}")

        update = Update.de_json(data, bot)
        application.update_queue.put_nowait(update)

        return "OK", 200
    except Exception as e:
        logger.error(f"❌ Webhook 처리 중 오류 발생: {e}")
        return f"Error: {e}", 500

def run_flask():
    logger.info("🚀 Flask 서버 실행 시작 (포트: 8443)")
    app.run(
        host="0.0.0.0",
        port=8443,
        ssl_context=(
            "/etc/letsencrypt/live/jjickjjicks.com-0002/fullchain.pem",
            "/etc/letsencrypt/live/jjickjjicks.com-0002/privkey.pem"
        )
    )
