from fastapi import APIRouter, Depends from sqlalchemy import select from sqlalchemy.orm import Session from app.db.session import get_db from app.models.knowledge import KnowledgeItem from app.schemas.knowledge import KnowledgeCreate, KnowledgeRead router = APIRouter(tags=["knowledge"]) @router.get("/knowledge", response_model=list[KnowledgeRead]) def list_knowledge(db: Session = Depends(get_db)): return list(db.scalars(select(KnowledgeItem).order_by(KnowledgeItem.id.desc())).all()) @router.post("/knowledge", response_model=KnowledgeRead, status_code=201) def create_knowledge(payload: KnowledgeCreate, db: Session = Depends(get_db)): item = KnowledgeItem(title=payload.title, category=payload.category, content=payload.content, source_url=str(payload.source_url) if payload.source_url else None, verification_status="pending") db.add(item); db.commit(); db.refresh(item) return item