feat: track imported accounts per upstream key across platforms
Add upstream_key_account_links table mapping generated keys to remote accounts per website/platform, surface imported_accounts on key responses, and update website sync/routers to manage the links.
This commit is contained in:
@@ -134,6 +134,20 @@ class GenerateKeysByGroupsRequest(BaseModel):
|
||||
endpoint: str = "/keys"
|
||||
|
||||
|
||||
class UpstreamKeyAccountLinkResponse(BaseModel):
|
||||
id: int
|
||||
upstream_key_id: int
|
||||
website_id: int
|
||||
target_group: str
|
||||
platform: str
|
||||
remote_account_id: str
|
||||
status: str
|
||||
created_at: Optional[datetime] = None
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class GeneratedUpstreamKeyResponse(BaseModel):
|
||||
id: Optional[int] = None
|
||||
upstream_id: int
|
||||
@@ -151,6 +165,7 @@ class GeneratedUpstreamKeyResponse(BaseModel):
|
||||
created_at: Optional[datetime] = None
|
||||
updated_at: Optional[datetime] = None
|
||||
has_key_value: bool = False
|
||||
imported_accounts: list[UpstreamKeyAccountLinkResponse] = Field(default_factory=list)
|
||||
|
||||
|
||||
class GenerateKeysByGroupsResponse(BaseModel):
|
||||
|
||||
@@ -65,6 +65,7 @@ class WebsiteGroupResponse(BaseModel):
|
||||
name: str
|
||||
rate_multiplier: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
platform: Optional[str] = None
|
||||
raw: dict[str, Any] = {}
|
||||
|
||||
|
||||
@@ -115,6 +116,7 @@ class BindingResponse(BaseModel):
|
||||
percent: float
|
||||
algorithm: str
|
||||
enabled: bool
|
||||
platform: Optional[str] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
Reference in New Issue
Block a user