feat: Airwallex 发卡管理后台完整实现
- 后端: FastAPI + SQLAlchemy + SQLite, JWT认证, 代理支持的AirwallexClient - 前端: React 18 + Vite + Ant Design 5, 中文界面 - 功能: 卡片管理, 持卡人管理, 交易记录, API令牌, 系统设置, 审计日志 - 第三方API: X-API-Key认证, 权限控制 - Docker部署: docker-compose编排前后端
This commit is contained in:
51
airwallex-sdk/airwallex/models/account.py
Normal file
51
airwallex-sdk/airwallex/models/account.py
Normal file
@@ -0,0 +1,51 @@
|
||||
"""
|
||||
Models for the Airwallex account API.
|
||||
"""
|
||||
from typing import Optional, List, Dict, Any
|
||||
from datetime import datetime
|
||||
from pydantic import Field
|
||||
from .base import AirwallexModel
|
||||
|
||||
|
||||
class AccountBalanceAmount(AirwallexModel):
|
||||
"""Model for account balance amount."""
|
||||
currency: str = Field(..., description="Currency code (ISO 4217)")
|
||||
value: float = Field(..., description="Balance amount value")
|
||||
|
||||
|
||||
class AccountBalance(AirwallexModel):
|
||||
"""Model for account balance."""
|
||||
available_amount: AccountBalanceAmount = Field(..., description="Available account balance")
|
||||
pending_amount: Optional[AccountBalanceAmount] = Field(None, description="Pending account balance")
|
||||
|
||||
|
||||
class Account(AirwallexModel):
|
||||
"""Model for an Airwallex account."""
|
||||
resource_name: str = "accounts"
|
||||
|
||||
id: str = Field(..., description="Unique account ID")
|
||||
account_name: str = Field(..., description="Account name")
|
||||
account_type: str = Field(..., description="Account type")
|
||||
account_currency: str = Field(..., description="Account currency (ISO 4217)")
|
||||
status: str = Field(..., description="Account status")
|
||||
swift_code: Optional[str] = Field(None, description="SWIFT/BIC code")
|
||||
iban: Optional[str] = Field(None, description="IBAN (International Bank Account Number)")
|
||||
routing_number: Optional[str] = Field(None, description="Routing number")
|
||||
account_number: Optional[str] = Field(None, description="Account number")
|
||||
bsb: Optional[str] = Field(None, description="BSB (Bank State Branch code) for AU accounts")
|
||||
sort_code: Optional[str] = Field(None, description="Sort code for UK accounts")
|
||||
created_at: datetime = Field(..., description="Account creation timestamp")
|
||||
updated_at: Optional[datetime] = Field(None, description="Account last update timestamp")
|
||||
balance: Optional[AccountBalance] = Field(None, description="Account balance")
|
||||
|
||||
|
||||
class AccountCreateRequest(AirwallexModel):
|
||||
"""Model for account creation request."""
|
||||
account_name: str = Field(..., description="Name for the account")
|
||||
account_currency: str = Field(..., description="Currency code (ISO 4217)")
|
||||
|
||||
|
||||
class AccountUpdateRequest(AirwallexModel):
|
||||
"""Model for account update request."""
|
||||
account_name: Optional[str] = Field(None, description="New name for the account")
|
||||
status: Optional[str] = Field(None, description="New status for the account")
|
||||
Reference in New Issue
Block a user