from datetime import datetime from uuid import UUID from app.models.evidence_image import SourceApp from app.models.transaction import Direction from app.schemas.base import CamelModel class TransactionOut(CamelModel): id: UUID case_id: UUID source_app: SourceApp trade_time: datetime amount: float direction: Direction counterparty_name: str counterparty_account: str self_account_tail_no: str order_no: str remark: str evidence_image_id: UUID | None = None confidence: float cluster_id: UUID | None = None is_duplicate: bool is_transit: bool class TransactionUpdateIn(CamelModel): source_app: SourceApp | None = None trade_time: datetime | None = None amount: float | None = None direction: Direction | None = None counterparty_name: str | None = None counterparty_account: str | None = None self_account_tail_no: str | None = None order_no: str | None = None remark: str | None = None confidence: float | None = None is_duplicate: bool | None = None is_transit: bool | None = None class TransactionListOut(CamelModel): items: list[TransactionOut] total: int class FlowNodeOut(CamelModel): id: str label: str type: str class FlowEdgeOut(CamelModel): source: str target: str amount: float count: int trade_time: str class FlowGraphOut(CamelModel): nodes: list[FlowNodeOut] edges: list[FlowEdgeOut]