Files
Mutual_Fund/schemas/account.py
T
2026-09-11 11:05:52 +08:00

35 lines
1018 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""资金账户相关 DTO。
金额统一序列化为两位小数字符串(如 "48000.00"),避免 JSON number 的浮点精度隐患。
"""
from datetime import datetime
from decimal import Decimal
from typing import Literal
from pydantic import BaseModel, Field, field_serializer
class BalanceResp(BaseModel):
"""用户余额响应体。available_balance = balance - frozen_amount,由 service 派生。"""
customer_id: int
balance: Decimal
available_balance: Decimal
frozen_amount: Decimal
currency: str
status: str
update_time: datetime | None = None
@field_serializer("balance", "available_balance", "frozen_amount")
def _fmt_money(self, value: Decimal) -> str:
return f"{value:.2f}"
class AdjustReq(BaseModel):
"""加减余额入参。amount 为正数(元),direction 决定加/减。"""
direction: Literal["add", "sub"] = Field(
..., description="add=入账(充值),sub=出账(提现)"
)
amount: Decimal = Field(gt=0)