feat: lock concurrent moderation decisions
CI / backend-and-migrations (push) Canceled after 0s
CI / astro-build (push) Canceled after 0s
CI / dependency-audit (push) Canceled after 0s
CI / compose-e2e (push) Canceled after 0s

This commit is contained in:
ik
2026-09-13 09:26:18 +07:00
parent cbd854d933
commit 0abe1a2bb4
10 changed files with 147 additions and 31 deletions
+2
View File
@@ -95,6 +95,7 @@ class CatchReport(Base):
screenshot_upload_token_hash: Mapped[str | None] = mapped_column(String(64))
deleted_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
raw_payload: Mapped[dict | None] = mapped_column(JSON)
moderation_version: Mapped[int] = mapped_column(default=0)
fish: Mapped[Fish] = relationship()
spot: Mapped[Spot | None] = relationship()
waterbody: Mapped[Waterbody] = relationship()
@@ -197,6 +198,7 @@ class ExternalObservation(Base):
catch_report_id: Mapped[uuid.UUID | None] = mapped_column(ForeignKey("catch_report.id"), unique=True)
review_note: Mapped[str | None] = mapped_column(Text)
reviewed_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
moderation_version: Mapped[int] = mapped_column(default=0)
source: Mapped[DataSource] = relationship()
fish: Mapped[Fish | None] = relationship()
waterbody: Mapped[Waterbody | None] = relationship()