"""FastAPI application — category tree API on port 8080.""" from __future__ import annotations from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from api.services.category_tree import build_category_tree from api.services.demand_belong_category import list_demand_belong_categories from api.services.oss_logs import list_demand_belong_oss_logs app = FastAPI(title="SupplyAgent API", version="0.1.0") app.add_middleware( CORSMiddleware, allow_origins=[ "http://localhost:5173", "http://127.0.0.1:5173", "http://localhost:4173", "http://127.0.0.1:4173", ], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.get("/health") def health() -> dict[str, str]: return {"status": "ok"} @app.get("/api/category-tree") def category_tree() -> dict: """Return the full nested global_tree_category tree in one response.""" nodes = build_category_tree() return {"nodes": nodes} @app.get("/api/demand-belong-category") def demand_belong_category() -> dict: """Return all active demand_belong_category rows in one response.""" items = list_demand_belong_categories() return {"items": items} @app.get("/api/demand-belong-oss-logs") def demand_belong_oss_logs() -> dict: """Return demand_belong_category_agent oss_logs ordered by create_time desc.""" items = list_demand_belong_oss_logs() return {"items": items}