David Prince
production: clean source snapshot — no history bloat
71b4454
Raw
History Blame Contribute Delete
1.29 kB
from sqlalchemy import Column, Integer, String, DateTime, Text, JSON, Float, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from datetime import datetime
Base = declarative_base()
class Document(Base):
__tablename__ = "documents"
id = Column(Integer, primary_key=True)
doc_id = Column(String(64), unique=True, nullable=False)
title = Column(String(256), nullable=False)
source_type = Column(String(32), nullable=False)
source_path = Column(String(512), nullable=True)
meta = Column(JSON, default={}) # renamed from metadata
created_at = Column(DateTime, default=datetime.utcnow)
chunks = relationship("Chunk", back_populates="document")
class Chunk(Base):
__tablename__ = "chunks"
id = Column(Integer, primary_key=True)
chunk_id = Column(String(64), unique=True, nullable=False)
doc_id = Column(Integer, ForeignKey("documents.id"))
content = Column(Text, nullable=False)
embedding = Column(JSON, nullable=True)
chunk_index = Column(Integer, default=0)
meta = Column(JSON, default={}) # renamed from metadata
created_at = Column(DateTime, default=datetime.utcnow)
document = relationship("Document", back_populates="chunks")