mirror of
https://github.com/langgenius/dify.git
synced 2026-11-12 06:11:12 +08:00
32 lines
925 B
Python
32 lines
925 B
Python
from typing import TypedDict
|
|
|
|
from services.billing_client import saas
|
|
|
|
|
|
class UtmInfo(TypedDict, total=False):
|
|
"""Expected shape of the utm_info dict passed to record_utm.
|
|
|
|
All fields are optional; missing keys default to an empty string.
|
|
"""
|
|
|
|
utm_source: str
|
|
utm_medium: str
|
|
utm_campaign: str
|
|
utm_content: str
|
|
utm_term: str
|
|
|
|
|
|
class OperationService:
|
|
@classmethod
|
|
def record_utm(cls, tenant_id: str, utm_info: UtmInfo) -> saas.TenantUtmReply:
|
|
return saas.utm_record_tenant_utm(
|
|
body=saas.TenantUtmRequest(
|
|
tenant_id=tenant_id,
|
|
utm_source=utm_info.get("utm_source", ""),
|
|
utm_medium=utm_info.get("utm_medium", ""),
|
|
utm_campaign=utm_info.get("utm_campaign", ""),
|
|
utm_content=utm_info.get("utm_content", ""),
|
|
utm_term=utm_info.get("utm_term", ""),
|
|
)
|
|
)
|