"""Transaction schemas.""" from datetime import datetime from decimal import Decimal from pydantic import BaseModel, ConfigDict class TransactionBase(BaseModel): app_source: str transaction_type: str amount: Decimal currency: str = "CNY" counterparty_name: str | None = None counterparty_account: str | None = None order_number: str | None = None transaction_time: datetime | None = None remark: str | None = None confidence: str = "medium" class TransactionCreate(TransactionBase): case_id: int screenshot_id: int raw_text: str | None = None class TransactionResponse(TransactionBase): model_config = ConfigDict(from_attributes=True) id: int case_id: int screenshot_id: int raw_text: str | None = None created_at: datetime class TransactionListResponse(BaseModel): items: list[TransactionResponse] class TransactionExtractItem(BaseModel): """Single item as returned by LLM extraction (before DB insert).""" app_source: str transaction_type: str amount: Decimal currency: str = "CNY" counterparty_name: str | None = None counterparty_account: str | None = None order_number: str | None = None transaction_time: datetime | None = None remark: str | None = None confidence: str = "medium"