90 lines
3.7 KiB
Python
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
|