| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel, ConfigDict, Field, model_validator
- class FacetofaceApplySchema(BaseModel):
- """当面付代开通申请请求"""
- enterprise_id: str = Field(description="关联企业ID")
- account: str = Field(description="商户支付宝账号或pid(2088开头)")
- contact_name: str = Field(description="联系人名称")
- contact_mobile: str = Field(description="联系人手机号")
- contact_email: Optional[str] = Field(default=None, description="联系人邮箱")
- order_ticket: Optional[str] = Field(default=None, description="订单授权凭证(预授权模式)")
- sign_and_auth: bool = Field(default=False, description="是否签约且授权")
- rate: Optional[str] = Field(default=None, description="费率(sign_and_auth=true时必填)")
- remark: Optional[str] = Field(default=None, description="备注")
- @model_validator(mode="after")
- def validate_rate(self):
- if self.sign_and_auth and not self.rate:
- raise ValueError("签约且授权时费率不能为空")
- return self
- class FacetofaceOrderOutSchema(BaseModel):
- """当面付申请单详情响应"""
- model_config = ConfigDict(from_attributes=True)
- id: int = Field(description="主键ID")
- enterprise_id: Optional[str] = Field(default=None, description="关联企业ID")
- batch_no: Optional[str] = Field(default=None, description="事务编号")
- order_no: Optional[str] = Field(default=None, description="签约单号")
- order_status: str = Field(description="申请单状态")
- account: Optional[str] = Field(default=None, description="商户支付宝账号/pid")
- contact_name: Optional[str] = Field(default=None, description="联系人名称")
- contact_mobile: Optional[str] = Field(default=None, description="联系人手机号")
- contact_email: Optional[str] = Field(default=None, description="联系人邮箱")
- order_ticket: Optional[str] = Field(default=None, description="订单授权凭证")
- rate: Optional[str] = Field(default=None, description="费率")
- sign_and_auth: bool = Field(default=False, description="是否签约且授权")
- merchant_pid: Optional[str] = Field(default=None, description="商户pid")
- confirm_url: Optional[str] = Field(default=None, description="商家确认链接")
- app_auth_token: Optional[str] = Field(default=None, description="应用授权令牌")
- app_refresh_token: Optional[str] = Field(default=None, description="刷新令牌")
- auth_app_id: Optional[str] = Field(default=None, description="授权商户appId")
- user_id: Optional[str] = Field(default=None, description="授权商户userId")
- open_id: Optional[str] = Field(default=None, description="授权商户openId")
- expires_in: Optional[str] = Field(default=None, description="授权令牌过期秒数")
- re_expires_in: Optional[str] = Field(default=None, description="刷新令牌过期秒数")
- reject_reason: Optional[str] = Field(default=None, description="驳回原因")
- remark: Optional[str] = Field(default=None, description="备注")
- last_query_time: Optional[datetime] = Field(default=None, description="最后查询时间")
- next_query_time: Optional[datetime] = Field(default=None, description="下次查询时间")
- query_count: int = Field(default=0, description="已查询次数")
- created_time: datetime = Field(description="创建时间")
- updated_time: datetime = Field(description="更新时间")
- class FacetofaceOrderListOutSchema(BaseModel):
- """当面付申请单列表响应"""
- model_config = ConfigDict(from_attributes=True)
- id: int = Field(description="主键ID")
- enterprise_id: Optional[str] = Field(default=None, description="关联企业ID")
- batch_no: Optional[str] = Field(default=None, description="事务编号")
- order_status: str = Field(description="申请单状态")
- account: Optional[str] = Field(default=None, description="商户支付宝账号")
- contact_name: Optional[str] = Field(default=None, description="联系人")
- sign_and_auth: bool = Field(default=False, description="是否授权")
- confirm_url: Optional[str] = Field(default=None, description="商家确认链接")
- reject_reason: Optional[str] = Field(default=None, description="驳回原因")
- created_time: datetime = Field(description="创建时间")
- updated_time: datetime = Field(description="更新时间")
|