feat: Cloudflare多账号子资产管理(zone/worker/r2/tunnel/mail子资产模型+模态框)
This commit is contained in:
@@ -162,3 +162,31 @@ class AIAccount(SQLModel, table=True):
|
||||
last_synced_at: Optional[datetime] = Field(
|
||||
default=None, description="最近一次自动同步余额/用量的时间"
|
||||
)
|
||||
|
||||
|
||||
class CloudflareDetail(SQLModel, table=True):
|
||||
"""Cloudflare 子资产详情(一对一关联 Asset)
|
||||
|
||||
一个 Cloudflare 账号可有多个子资产(zone/worker/r2/tunnel/mail)。
|
||||
每个子资产是一个 Asset(asset_type=cloudflare) + CloudflareDetail。
|
||||
"""
|
||||
|
||||
__tablename__ = "cloudflare_details"
|
||||
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
asset_id: int = Field(
|
||||
foreign_key="assets.id", unique=True, index=True, description="关联资产 ID"
|
||||
)
|
||||
account_email: Optional[str] = Field(
|
||||
default=None, index=True, description="Cloudflare 账号邮箱(区分多账号)"
|
||||
)
|
||||
sub_type: str = Field(
|
||||
default="zone", index=True, description="子资产类型:zone/worker/r2/tunnel/mail/dns_record/other"
|
||||
)
|
||||
sub_name: Optional[str] = Field(
|
||||
default=None, description="子资产名称(如 worker 名、bucket 名)"
|
||||
)
|
||||
zone_name: Optional[str] = Field(
|
||||
default=None, index=True, description="关联的 zone/域名"
|
||||
)
|
||||
status: Optional[str] = Field(default=None, description="子资产状态")
|
||||
|
||||
Reference in New Issue
Block a user