from typing import Optional from datetime import datetime from pydantic import BaseModel, Field, ConfigDict from app.plugin.module_payment.account.schema import AccountTransferSchema class OpenTransferSchema(AccountTransferSchema): third_biz_no: Optional[str] = Field(default=None, description="三方订单号") api_key: Optional[str] = Field(default=None, description="API Key") class OpenConfOutSchema(BaseModel): """开放配置响应模型""" model_config = ConfigDict(from_attributes=True) id: int = Field(description="配置ID") app_id: str = Field(description="应用ID") gateway_url: Optional[str] = Field(default=None, description="平台网关地址") notify_url: Optional[str] = Field(default=None, description="异步通知地址") return_url: Optional[str] = Field(default=None, description="同步返回地址") status: str = Field(description="状态") description: Optional[str] = Field(default=None, description="配置描述") created_time: Optional[datetime] = Field(default=None, description="创建时间") updated_time: Optional[datetime] = Field(default=None, description="更新时间") class OpenConfUpdateSchema(BaseModel): """开放配置更新模型(前端只允许配置回调地址)""" notify_url: Optional[str] = Field(default=None, description="异步通知地址") return_url: Optional[str] = Field(default=None, description="同步返回地址") class OpenTransferOutSchema(BaseModel): """开放转账响应模型""" status: Optional[str] = Field(default=None, description="转账状态") order_no: Optional[str] = Field(default=None, description="支付宝转账单号") third_biz_no: Optional[str] = Field(default=None, description="三方订单号") class OpenTransferQuerySchema(BaseModel): third_biz_no: str = Field(description="三方订单号")