"""Servidor de desarrollo local.

    python run_local.py            -> http://127.0.0.1:5000
    python run_local.py 8080       -> otro puerto

Sin DATABASE_URL usa un SQLite en datos/streamcore_dev.db.
El recargador automático (reloader) viene DESACTIVADO porque en algunos
Windows / consolas hace que el proceso se cierre solo. Si cambias código,
corta con Ctrl+C y vuelve a ejecutar.
"""
import os
import sys
import traceback


def main():
    puerto = 5000
    if len(sys.argv) > 1 and sys.argv[1].isdigit():
        puerto = int(sys.argv[1])

    try:
        from app import create_app
        app = create_app()
    except Exception:
        print("\n[ERROR] No se pudo iniciar la aplicación:\n")
        traceback.print_exc()
        input("\nPresione Enter para salir...")
        return

    debug = os.environ.get("FLASK_DEBUG", "1") == "1"
    print(f"\n  StreamCore ERP (web) — desarrollo local")
    print(f"  Abrir en el navegador:  http://127.0.0.1:{puerto}")
    print(f"  Usuario inicial: Admin / Admin     (cortar: Ctrl+C)\n")

    try:
        app.run(host="127.0.0.1", port=puerto, debug=debug,
                use_reloader=False, threaded=True)
    except OSError as e:
        print(f"\n[ERROR] No se pudo usar el puerto {puerto}: {e}")
        print(f"       Probá con otro puerto:  python run_local.py {puerto + 1}")
        input("\nPresione Enter para salir...")


if __name__ == "__main__":
    main()
