First commit

This commit is contained in:
2026-06-19 22:17:09 -03:00
commit 239203ee2a
533 changed files with 75195 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
from __future__ import annotations
from app.schemas import BusinessContext, GatewayRequest, WebMessage
from app.settings import settings
class WebAdapter:
name = 'web'
async def to_gateway_request(self, payload: WebMessage) -> GatewayRequest:
bc = payload.business_context or BusinessContext(
customer_key=payload.customer_key,
contract_key=payload.contract_key,
interaction_key=payload.interaction_key,
account_key=payload.account_key,
resource_key=payload.resource_key,
session_key=payload.session_key or payload.session_id,
metadata={'source_channel': 'web', **(payload.metadata or {})},
)
data = payload.model_dump(exclude_none=True)
data['business_context'] = bc.model_dump(exclude_none=True)
data.setdefault('session_key', payload.session_key or payload.session_id)
data.setdefault('metadata', {})
data['metadata'] = {
**(data.get('metadata') or {}),
'external_gateway': settings.APP_NAME,
'source_channel': 'web',
'contract_version': 'gateway-request-v1',
}
return GatewayRequest(
channel='web',
tenant_id=settings.DEFAULT_TENANT_ID,
agent_id=settings.DEFAULT_AGENT_ID,
payload=data,
)