import uuid from sqlalchemy import String, ForeignKey from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import Mapped, mapped_column, relationship from app.core.database import Base class TransactionCluster(Base): __tablename__ = "transaction_clusters" id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) case_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("cases.id"), index=True) primary_tx_id: Mapped[uuid.UUID | None] = mapped_column(UUID(as_uuid=True), nullable=True) match_reason: Mapped[str] = mapped_column(String(512), default="") transactions = relationship( "TransactionRecord", back_populates="cluster", foreign_keys="TransactionRecord.cluster_id", )