""" fumamxCRM Backend - FastAPI Application 后端独立服务,端口 10001 """ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from contextlib import asynccontextmanager from database import init_db, SessionLocal, Base, engine from auth import init_admin_user from routers import auth, customers, discover, settings, import_tasks, potential_customers, deep_analysis @asynccontextmanager async def lifespan(app: FastAPI): """应用生命周期管理""" print("🚀 初始化数据库...") Base.metadata.create_all(bind=engine) db = SessionLocal() try: init_admin_user(db) finally: db.close() print("✓ 后端服务启动完成") yield print("👋 服务关闭") app = FastAPI( title="fumamxCRM API", description="fumamx 客户关系管理系统 API", version="1.0.0", lifespan=lifespan, docs_url="/docs", redoc_url="/redoc", openapi_url="/openapi.json" ) # CORS 配置 - 允许前端访问 app.add_middleware( CORSMiddleware, allow_origins=[ "http://129.211.173.87:10000", "http://localhost:10000", "http://localhost:5173", # Vite dev server ], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # API 路由 app.include_router(auth.router) app.include_router(customers.router) app.include_router(discover.router) app.include_router(settings.router) app.include_router(import_tasks.router) app.include_router(potential_customers.router) app.include_router(deep_analysis.router) @app.get("/") def root(): return { "name": "fumamxCRM API", "version": "1.0.0", "status": "running", "frontend": "http://129.211.173.87:10000" } @app.get("/health") def health(): return {"status": "healthy"} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=10001)