from sqlalchemy import Column, DateTime, ForeignKey, Integer, JSON, String from sqlalchemy.orm import relationship from sqlalchemy.sql import func from app.db.base import Base class DocumentReplicaOutput(Base): __tablename__ = "document_replica_outputs" id = Column(Integer, primary_key=True, index=True) document_id = Column(Integer, ForeignKey("documents.id"), nullable=False, index=True) replica_layout_version_id = Column(Integer, ForeignKey("document_replica_layout_versions.id"), nullable=False, index=True) output_type = Column(String, nullable=False) file_path = Column(String, nullable=False) sha256 = Column(String, nullable=True) file_size_bytes = Column(Integer, nullable=True) created_by = Column(String, nullable=True) render_settings_json = Column(JSON, nullable=True) created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) document = relationship("Document", back_populates="replica_outputs") replica_layout_version = relationship("DocumentReplicaLayoutVersion", back_populates="outputs")