Files
fund-tracer/backend/app/schemas/transaction.py
2026-03-09 14:46:56 +08:00

52 lines
1.3 KiB
Python

"""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"