#!/usr/bin/env python3
"""
game-topup-bot — Main entry point
Starts: Flask API + Queue Worker + Telegram Bot polling
"""

import threading
from app.database.db import init_db
from app.api.server import run_server, create_app
from worker.worker import start_worker
from app.bot.commands import start_polling
from app.utils.logger import get_logger

logger = get_logger("main")


def main():
    logger.info("=== Game Top-up Bot Starting ===")

    # 1. Initialize database
    init_db()

    # 2. Start queue worker
    start_worker(daemon=True)
    logger.info("[1/3] Worker started.")

    # 3. Start Telegram polling
    start_polling(daemon=True)
    logger.info("[2/3] Telegram bot started.")

    # 4. Start Flask API (blocking)
    logger.info("[3/3] Starting Flask API...")
    run_server()


if __name__ == "__main__":
    main()
