from datetime import datetime from sqlalchemy import Boolean, DateTime, ForeignKey, String from sqlalchemy.orm import Mapped, mapped_column, relationship from app.db.base import Base class DocumentReviewState(Base): __tablename__ = "document_review_states" id: Mapped[int] = mapped_column(primary_key=True) document_id: Mapped[int] = mapped_column( ForeignKey("documents.id", ondelete="CASCADE"), unique=True, nullable=False, ) reviewed_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True) is_approved: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) is_excluded: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) schema_version: Mapped[str] = mapped_column(String(32), default="v1", nullable=False) document = relationship("Document", back_populates="review_state")