"""平台/服务商注册表模型 Provider 是资产的归属平台预设字典,提供唯一标识(slug), 为未来按平台对接 SDK(自动同步 VPS/域名/AI 状态)打基础。 """ from datetime import datetime from enum import Enum from typing import Optional from sqlmodel import Field, SQLModel class ProviderCategory(str, Enum): """平台分类""" VPS = "vps" # 云服务器 DOMAIN = "domain" # 域名注册商 AI_AGENT = "ai_agent" # AI 服务商 CLOUDFLARE = "cloudflare" # Cloudflare(DNS/Workers/R2/Tunnel/Mail) OTHER = "other" # 其他 class Provider(SQLModel, table=True): """平台/服务商(预设 + 自定义)""" __tablename__ = "providers" id: Optional[int] = Field(default=None, primary_key=True) slug: str = Field(index=True, unique=True, description="唯一标识,如 aliyun/vultr/openai") name: str = Field(index=True, description="显示名,如 阿里云") name_en: Optional[str] = Field(default=None, description="英文名") category: ProviderCategory = Field(index=True, description="平台分类") website: Optional[str] = Field(default=None, description="官网") console_url: Optional[str] = Field(default=None, description="管理面板 URL") sdk_type: Optional[str] = Field( default=None, description="SDK 类型标识,如 aliyun-sdk/vultr-api(供扩展用)" ) api_config_encrypted: Optional[str] = Field( default=None, description="加密的 API 配置 JSON(access_key/secret 等)" ) enabled: bool = Field(default=True, description="是否启用") remark: Optional[str] = Field(default=None, description="备注") created_at: datetime = Field(default_factory=datetime.utcnow, description="创建时间")