diff --git a/surfsense_backend/app/db.py b/surfsense_backend/app/db.py index d54254f9c..abca893fb 100644 --- a/surfsense_backend/app/db.py +++ b/surfsense_backend/app/db.py @@ -428,6 +428,28 @@ class Chunk(BaseModel, TimestampMixin): document = relationship("Document", back_populates="chunks") +class SurfsenseDocsDocument(BaseModel, TimestampMixin): + """ + Surfsense documentation storage. + Indexed at migration time from MDX files. + """ + + __tablename__ = "surfsense_docs_documents" + + source = Column(String, nullable=False, unique=True, index=True) # File path: "connectors/slack.mdx" + title = Column(String, nullable=False) + content = Column(Text, nullable=False) + content_hash = Column(String, nullable=False, index=True) # For detecting changes + embedding = Column(Vector(config.embedding_model_instance.dimension)) + updated_at = Column(TIMESTAMP(timezone=True), nullable=True, index=True) + + chunks = relationship( + "SurfsenseDocsChunk", + back_populates="document", + cascade="all, delete-orphan", + ) + + class Podcast(BaseModel, TimestampMixin): """Podcast model for storing generated podcasts."""