"""FastAPI application entry point for ERP AI Assistant. This module creates and configures the main FastAPI application instance. """ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.config import get_settings from app.api import analyze, generate, execute # Get application settings settings = get_settings() # Create FastAPI application instance app = FastAPI( title=settings.APP_NAME, version="1.0.0", debug=settings.DEBUG, description="AI-powered assistant for ERP platform configuration" ) # Configure CORS middleware for frontend communication # For development: allow all origins with port 5173 # For production: configure specific origins in environment app.add_middleware( CORSMiddleware, allow_origins=["*"] if settings.DEBUG else [ "http://localhost:5173", "http://127.0.0.1:5173", ], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Register API routers app.include_router(analyze.router, prefix="/api/v1", tags=["Analysis"]) app.include_router(generate.router, prefix="/api/v1", tags=["Generation"]) app.include_router(execute.router, prefix="/api/v1", tags=["Execution"]) @app.get("/", tags=["Root"]) async def root() -> dict: """Root endpoint returning application info. Returns: Dictionary with application name, version, and status """ return { "message": settings.APP_NAME, "version": "1.0.0", "status": "running" } @app.get("/health", tags=["Health"]) async def health_check() -> dict: """Health check endpoint for monitoring. Returns: Dictionary with health status """ return { "status": "healthy", "version": "1.0.0" } if __name__ == "__main__": import uvicorn uvicorn.run( "app.main:app", host="0.0.0.0", port=8000, reload=settings.DEBUG )