import sys
from pathlib import Path
from fastapi import FastAPI
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware
from pipeline_runner import run_query
# Ensure the 01_data_ingestion package is importable
sys.path.insert(0, str(Path(__file__).resolve().parent / "01_data_ingestion"))
from ingestion.api import router as ingestion_router
app = FastAPI()
# CORS lets the browser (Lovable) call your API.
# For beta/demo, allow all. Later you can restrict to your domain.
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(ingestion_router)
class QueryRequest(BaseModel):
query: str
@app.get("/health")
def health():
return {"ok": True}
@app.post("/query")
def query_endpoint(req: QueryRequest):
output = run_query(req.query)
return {"query": req.query, "output": output}