# main.py from fastapi import FastAPI, Request, Depends from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates from fastapi.staticfiles import StaticFiles from db.models import User from api.dependencies import get_current_user_optional from api.routers import users, invoices from db.database import engine, Base Base.metadata.create_all(bind=engine) app = FastAPI(title="ACME Invoice Processor") app.mount("/static", StaticFiles(directory="static"), name="static") templates = Jinja2Templates(directory="templates") app.include_router(users.router, prefix="/api/users", tags=["Users"]) app.include_router(invoices.router, prefix="/api/invoices", tags=["Invoices"]) # --- RUTAS DE PLANTILLAS HTML --- @app.get("/", response_class=HTMLResponse) async def read_login_page(request: Request): """ Esta ruta ahora SOLO sirve la página de login. """ return templates.TemplateResponse("login.html", {"request": request}) @app.get("/dashboard", response_class=HTMLResponse) async def read_dashboard(request: Request): """ Esta es la nueva ruta dedicada para el dashboard. La seguridad se manejará en el propio HTML con JavaScript. """ return templates.TemplateResponse("dashboard.html", {"request": request}) @app.get("/register", response_class=HTMLResponse) async def register_page(request: Request): return templates.TemplateResponse("register.html", {"request": request})