"""申购相关 DTO。""" from decimal import Decimal from pydantic import BaseModel, Field, field_serializer from schemas.holdings import HoldingResp class PurchaseReq(BaseModel): """申购入参。amount 为正数(元),按净值折算份额。""" product_id: int amount: Decimal = Field(gt=0) class PurchaseResp(BaseModel): """申购结果:最新余额 + 该产品最新持仓。""" balance: Decimal holding: HoldingResp @field_serializer("balance") def _fmt_balance(self, value: Decimal) -> str: return f"{value:.2f}"