import argparse
import sys
import uvicorn
from database import get_setting, init_db
from logger_config import setup_logging
from version import __version__


def main():
    setup_logging()
    parser = argparse.ArgumentParser(description="Mozisarok Videó Feltöltő Kliens (Videa & VK)")
    parser.add_argument("--cli", action="store_true", help="Interaktív Terminál (CLI) felület indítása")
    parser.add_argument("--web", action="store_true", help="Webes felület indítása (alapértelmezett)")
    parser.add_argument("--host", default="0.0.0.0", help="Webszerver host címe (alap: 0.0.0.0)")
    parser.add_argument("--port", type=int, default=8000, help="Webszerver port (alap: 8000)")

    args = parser.parse_args()

    # Initialize database
    try:
        init_db()
    except Exception as e:
        print(f"[FIGYELEM] Nem sikerült csatlakozni a MySQL adatbázishoz indításkor: {e}")

    if args.cli:
        from cli import main_cli
        main_cli()
    else:
        active_port = args.port
        try:
            db_port = get_setting("server_port")
            if db_port and db_port.isdigit() and args.port == 8000:
                active_port = int(db_port)
        except Exception:
            pass

        print("=" * 60)
        print(f"  🎬 MOZISAROK VIDEÓ FELTÖLTŐ KLIENS v{__version__} (Videa & VK)")
        print(f"  🌐 Webes felület elérhető: http://localhost:{active_port}")
        print("  🖥️ Kompatibilitás: Windows 11 & Ubuntu Linux")
        print("=" * 60)
        uvicorn.run("app:app", host=args.host, port=active_port, reload=False)


if __name__ == "__main__":
    main()
