diff --git a/backend/app/api/v1/dag.py b/backend/app/api/v1/dag.py new file mode 100644 index 0000000..3641ffe --- /dev/null +++ b/backend/app/api/v1/dag.py @@ -0,0 +1,27 @@ +"""DAG orchestration endpoints.""" +from fastapi import APIRouter, Depends +from sqlalchemy.orm import Session +from pydantic import BaseModel +from typing import List +from app.database import get_db +from app.services.dag_service import DAGService +from app.api.deps import get_current_user +from app.models.user import User + +router = APIRouter(prefix="/dag") + + +class DAGExecuteRequest(BaseModel): + project_id: int + task_ids: List[int] + + +@router.post("/execute") +def execute_dag( + req: DAGExecuteRequest, + user: User = Depends(get_current_user), + db: Session = Depends(get_db), +): + """Execute multiple tasks respecting dependencies (DAG).""" + results = DAGService.execute_dag(db, user.tenant_id, req.project_id, req.task_ids) + return {"success": True, "results": results}