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:
62
airwallex-sdk/airwallex/models/issuing_config.py
Normal file
62
airwallex-sdk/airwallex/models/issuing_config.py
Normal file
@@ -0,0 +1,62 @@
|
||||
"""
|
||||
Models for the Airwallex Issuing Config API.
|
||||
"""
|
||||
from typing import Optional, List, Dict, Any
|
||||
from datetime import datetime
|
||||
from pydantic import Field
|
||||
from .base import AirwallexModel
|
||||
from .issuing_common import TransactionUsage
|
||||
|
||||
|
||||
class RemoteAuthSettings(AirwallexModel):
|
||||
"""Model for remote auth settings."""
|
||||
created_at: Optional[datetime] = Field(None, description="Creation timestamp")
|
||||
default_action: Optional[str] = Field(None, description="Default action when remote auth fails")
|
||||
enabled: Optional[bool] = Field(None, description="Whether remote auth is enabled")
|
||||
shared_secret: Optional[str] = Field(None, description="Shared secret key")
|
||||
updated_at: Optional[datetime] = Field(None, description="Last update timestamp")
|
||||
url: Optional[str] = Field(None, description="Remote auth endpoint URL")
|
||||
|
||||
|
||||
class RemoteCallMethod(AirwallexModel):
|
||||
"""Model for remote call method."""
|
||||
name: str = Field(..., description="Method name")
|
||||
path: str = Field(..., description="Method path")
|
||||
|
||||
|
||||
class RemoteCallConfig(AirwallexModel):
|
||||
"""Model for remote call configuration."""
|
||||
methods: List[RemoteCallMethod] = Field(..., description="Available methods")
|
||||
shared_secret: Optional[str] = Field(None, description="Shared secret key")
|
||||
url: str = Field(..., description="Base URL")
|
||||
|
||||
|
||||
class RemoteProvisioningConfig(AirwallexModel):
|
||||
"""Model for remote provisioning configuration."""
|
||||
activated: Optional[bool] = Field(None, description="Whether remote provisioning is activated")
|
||||
shared_secret: Optional[str] = Field(None, description="Shared secret key")
|
||||
url: Optional[str] = Field(None, description="Remote provisioning endpoint URL")
|
||||
|
||||
|
||||
class SpendingLimitSettings(AirwallexModel):
|
||||
"""Model for spending limit settings."""
|
||||
default_limits: Optional[Dict[str, Dict[str, float]]] = Field(None, description="Default limits")
|
||||
maximum_limits: Optional[Dict[str, Dict[str, float]]] = Field(None, description="Maximum limits")
|
||||
|
||||
|
||||
class IssuingConfig(AirwallexModel):
|
||||
"""Model for issuing configuration."""
|
||||
resource_name: str = "issuing/config"
|
||||
|
||||
blocked_transaction_usages: Optional[List[TransactionUsage]] = Field(None, description="Blocked transaction usages")
|
||||
remote_auth_settings: Optional[RemoteAuthSettings] = Field(None, description="Remote authorization settings")
|
||||
remote_call_config: Optional[RemoteCallConfig] = Field(None, description="Remote call configuration")
|
||||
remote_provisioning_config: Optional[RemoteProvisioningConfig] = Field(None, description="Remote provisioning configuration")
|
||||
spending_limit_settings: Optional[SpendingLimitSettings] = Field(None, description="Spending limit settings")
|
||||
|
||||
|
||||
class IssuingConfigUpdateRequest(AirwallexModel):
|
||||
"""Model for issuing config update request."""
|
||||
remote_auth: Optional[RemoteAuthSettings] = Field(None, description="Remote authorization configuration")
|
||||
remote_call_config: Optional[RemoteCallConfig] = Field(None, description="Remote call configuration")
|
||||
remote_provisioning_config: Optional[RemoteProvisioningConfig] = Field(None, description="Remote provisioning configuration")
|
||||
Reference in New Issue
Block a user