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 from app.modules.clients.route import router as client_router from app.modules.branches.route import router as branches_router # from app.modules.coments.route import router as comments_router from app.modules.configuration.route import router as configuration_router # from app.modules.suppliers.route import router as suppliers_router from app.modules.location.route import router as location_router from app.modules.edos.route import router as Edos_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) app.include_router(client_router) app.include_router(branches_router) app.include_router(comments_router) app.include_router(configuration_router) app.include_router(suppliers_router) app.include_router(location_router) app.include_router(Edos_router)