from contextlib import asynccontextmanager from fastapi import FastAPI # Aquí se importarán los routers en el futuro # from app.api.routers import auth, addresses, routes, eta @asynccontextmanager async def lifespan(app: FastAPI): """ Maneja el ciclo de vida de la aplicación. Ideal para arrancar el cron job de simulación (APScheduler). """ print("Iniciando aplicación: Backend Sistema de Recolección...") # TODO: Inicializar APScheduler aquí para avanzar current_position_id (1-8) yield print("Apagando aplicación y deteniendo simulador...") # TODO: Apagar APScheduler app = FastAPI( title="API - Recolección Inteligente y Privada", description="Backend para el sistema de recolección de residuos con privacidad por diseño.", version="1.0.0", lifespan=lifespan ) # Endpoints de prueba base @app.get("/") def read_root(): return { "status": "ok", "message": "Backend operativo. Regla Innegociable 1: NUNCA se devuelven coordenadas del camión al ciudadano." } @app.get("/health") def health_check(): return {"status": "healthy"}