from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from app.core.database import get_db from app.core.security import require_api_key from app.modules.workflows.constants import WorkflowResponseKey from app.modules.workflows.service import WorkflowService router = APIRouter(dependencies=[Depends(require_api_key)]) @router.get("") def list_workflows( status: str | None = None, workflow_type: str | None = None, limit: int = Query(default=100, ge=1, le=500), db: Session = Depends(get_db), ) -> dict: return { WorkflowResponseKey.ITEMS: WorkflowService(db).list_workflows( status_filter=status, workflow_type=workflow_type, limit=limit, ) } @router.get("/{code}") def get_workflow( code: str, db: Session = Depends(get_db), ) -> dict: return {WorkflowResponseKey.WORKFLOW: WorkflowService(db).get_workflow(code)}