from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, Text from sqlalchemy.orm import relationship from sqlalchemy.sql import func from app.db.base import Base class DocumentReplicaReviewState(Base): __tablename__ = "document_replica_review_states" id = Column(Integer, primary_key=True, index=True) document_id = Column(Integer, ForeignKey("documents.id"), nullable=False, index=True) current_replica_layout_version_id = Column(Integer, ForeignKey("document_replica_layout_versions.id"), nullable=True) is_reviewed = Column(Boolean, nullable=False, default=False) is_approved = Column(Boolean, nullable=False, default=False) needs_model_retry = Column(Boolean, nullable=False, default=False) needs_manual_adjustment = Column(Boolean, nullable=False, default=False) reviewed_by = Column(Text, nullable=True) review_note = Column(Text, nullable=True) reviewed_at = Column(DateTime(timezone=True), nullable=True) created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now(), nullable=False) document = relationship("Document", back_populates="replica_review_states")