diff --git a/app/main.py b/app/main.py index ec2adb4..305e7af 100644 --- a/app/main.py +++ b/app/main.py @@ -439,3 +439,23 @@ def transition_issue(issue_id: int, new_status: str, bg: BackgroundTasks, db: Se }, issue.project_id, db) return issue + + + +# ============ Search API ============ + +@app.get("/search/issues", response_model=List[schemas.IssueResponse]) +def search_issues( + q: str, + project_id: int = None, + skip: int = 0, + limit: int = 50, + db: Session = Depends(get_db) +): + """Search issues by title or description keyword.""" + query = db.query(models.Issue).filter( + (models.Issue.title.contains(q)) | (models.Issue.description.contains(q)) + ) + if project_id: + query = query.filter(models.Issue.project_id == project_id) + return query.offset(skip).limit(limit).all()