import logging
import dash
import dash_bootstrap_components as dbc
from dash import dcc, html, Input, Output, callback

from scheduler import iniciar_scheduler

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
)

app = dash.Dash(
    __name__,
    use_pages=True,
    external_stylesheets=[dbc.themes.BOOTSTRAP],
    suppress_callback_exceptions=True,
    # Sirve la app bajo /bolsa en el servidor
    requests_pathname_prefix="/bolsa/",
    routes_pathname_prefix="/bolsa/",
)
server = app.server  # expuesto para Gunicorn

# Arrancar descarga automática diaria
_scheduler = iniciar_scheduler()

NAV_LINKS = [
    {"href": "/bolsa/grafico",    "label": "Gráfica"},
    {"href": "/bolsa/cartera",    "label": "Cartera Real"},
    {"href": "/bolsa/simulacion", "label": "Simulación"},
    {"href": "/bolsa/gestion",    "label": "Gestión"},
]

app.layout = dbc.Container(fluid=True, children=[
    dcc.Location(id="url"),
    dbc.Navbar(
        dbc.Container([
            dbc.NavbarBrand("📈 Bolsa", href="/bolsa/grafico", className="fw-bold"),
            dbc.Nav([
                dbc.NavLink(l["label"], href=l["href"], active="exact")
                for l in NAV_LINKS
            ], navbar=True, className="ms-auto"),
        ], fluid=True),
        color="dark", dark=True, className="mb-0",
    ),
    dash.page_container,
])


if __name__ == "__main__":
    app.run(debug=False, host="0.0.0.0", port=8050)
