deep-risk/backend/app/schemas/recharge.py
2025-12-14 20:08:27 +08:00

90 lines
3.7 KiB
Python

"""
平台充值记录相关Pydantic模型
"""
from datetime import datetime, date
from typing import Optional
from pydantic import BaseModel, Field
class PlatformRechargeBase(BaseModel):
"""平台充值基础模型"""
user_id: str = Field(..., description="用户ID")
user_name: Optional[str] = Field(None, description="用户昵称")
user_phone: Optional[str] = Field(None, description="用户手机号")
recharge_amount: float = Field(..., description="充值金额")
recharge_time: Optional[datetime] = Field(None, description="充值时间")
payment_method: str = Field(..., description="支付方式")
payment_channel: Optional[str] = Field(None, description="支付渠道")
transaction_no: Optional[str] = Field(None, description="交易流水号")
platform_order_no: Optional[str] = Field(None, description="平台订单号")
currency_type: Optional[str] = Field(None, description="币种")
exchange_rate: Optional[float] = Field(None, description="汇率")
actual_amount_cny: Optional[float] = Field(None, description="折算人民币金额")
recharge_type: Optional[str] = Field(None, description="充值类型")
bonus_coins: Optional[float] = Field(None, description="赠送虚拟币")
total_coins: Optional[float] = Field(None, description="到账虚拟币")
is_first_recharge: Optional[bool] = Field(None, description="是否首充")
ip_address: Optional[str] = Field(None, description="充值IP地址")
device_type: Optional[str] = Field(None, description="设备类型")
device_id: Optional[str] = Field(None, description="设备ID")
province: Optional[str] = Field(None, description="省份")
city: Optional[str] = Field(None, description="城市")
status: Optional[str] = Field(None, description="充值状态")
refund_amount: Optional[float] = Field(None, description="退款金额")
refund_time: Optional[datetime] = Field(None, description="退款时间")
withdrawal_status: Optional[str] = Field(None, description="提现状态")
withdrawn_amount: Optional[float] = Field(None, description="已提现金额")
class PlatformRechargeCreate(PlatformRechargeBase):
"""创建平台充值记录"""
pass
class PlatformRechargeUpdate(BaseModel):
"""更新平台充值记录"""
user_name: Optional[str] = None
user_phone: Optional[str] = None
recharge_amount: Optional[float] = None
recharge_time: Optional[datetime] = None
payment_method: Optional[str] = None
payment_channel: Optional[str] = None
transaction_no: Optional[str] = None
platform_order_no: Optional[str] = None
currency_type: Optional[str] = None
exchange_rate: Optional[float] = None
actual_amount_cny: Optional[float] = None
recharge_type: Optional[str] = None
bonus_coins: Optional[float] = None
total_coins: Optional[float] = None
is_first_recharge: Optional[bool] = None
ip_address: Optional[str] = None
device_type: Optional[str] = None
device_id: Optional[str] = None
province: Optional[str] = None
city: Optional[str] = None
status: Optional[str] = None
refund_amount: Optional[float] = None
refund_time: Optional[datetime] = None
withdrawal_status: Optional[str] = None
withdrawn_amount: Optional[float] = None
class PlatformRechargeResponse(PlatformRechargeBase):
"""平台充值记录响应模型"""
id: int
recharge_id: str
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
class PlatformRechargeListResponse(BaseModel):
"""平台充值记录列表响应模型"""
records: list[PlatformRechargeResponse]
total: int
page: int
size: int