"""Knowledge base document model for RAG.""" from sqlalchemy import Column, String, Integer, Text, Boolean, ForeignKey from app.models.base import Base, TimestampMixin, TenantMixin class KnowledgeDoc(Base, TimestampMixin, TenantMixin): """A document in the project knowledge base for RAG retrieval.""" __tablename__ = "knowledge_docs" id = Column(Integer, primary_key=True, autoincrement=True) project_id = Column(Integer, ForeignKey("projects.id"), nullable=True) # null = tenant-level title = Column(String(500), nullable=False) content = Column(Text, default="") doc_type = Column(String(50), default="text") # text, markdown, url, file source = Column(String(500), default="") tags = Column(String(500), default="") # Simple keyword index for MVP RAG (no vector DB needed) keywords = Column(Text, default="[]") # JSON array of keywords is_indexed = Column(Boolean, default=True)