import os import logging from contextlib import asynccontextmanager # from fastapi import FastAPI from app.core.servo import get_servo from database import test_connection from app.modules.users.route import router as user_router logging.basicConfig(level=logging.INFO, format= "%(asctime)s - %(levelname)s - %(message)s", datefmt= "%H:%M:%S") logger = logging.getLogger(__name__) @asynccontextmanager async def lifespan(app: FastAPI): # STARTUP logger.info("=" * 50) logger.info(" XMA - Xtended Module Architecture") logger.info("=" * 50) servo = get_servo() await servo.start() logger.info(f" Sistema listo | Estado: {servo.state.value.upper()} | Modo: {servo.mode.upper()}") logger.info("=" * 50) yield # SHUTDOWN logger.info(" Apagando XMA...") await servo.stop() logger.info(" XMA detenido correctamente") app = FastAPI( title="XMA - Xtended Module Architecture", version="1.0.0", lifespan=lifespan ) @app.get("/healt") async def health(): servo = get_servo() return servo.get_status() @app.get("/") async def root(): return{"message": "XMA running", "status": get_servo().state.value} app.include_router(user_router)