Implement FastAPI Temporal MVP pipeline

This commit is contained in:
Codex
2026-03-27 00:10:28 +08:00
commit cc03da8a94
52 changed files with 3619 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
"""Review task ORM model."""
from sqlalchemy import Enum, ForeignKey, Integer, String, Text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.domain.enums import ReviewDecision, ReviewTaskStatus
from app.infra.db.base import Base, TimestampMixin
class ReviewTaskORM(TimestampMixin, Base):
"""Persisted review task."""
__tablename__ = "review_tasks"
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
order_id: Mapped[int] = mapped_column(ForeignKey("orders.id"), nullable=False, index=True)
status: Mapped[ReviewTaskStatus] = mapped_column(
Enum(ReviewTaskStatus, native_enum=False),
nullable=False,
default=ReviewTaskStatus.PENDING,
)
decision: Mapped[ReviewDecision | None] = mapped_column(
Enum(ReviewDecision, native_enum=False),
nullable=True,
)
reviewer_id: Mapped[int | None] = mapped_column(Integer, nullable=True)
selected_asset_id: Mapped[int | None] = mapped_column(Integer, nullable=True)
comment: Mapped[str | None] = mapped_column(Text, nullable=True)
order = relationship("OrderORM", back_populates="review_tasks")