"""Normalize exported events from the supplied projects without launching them.

These adapters are only available behind the admin simulator/import API.
The production public webhook accepts signed Meta payloads exclusively.
"""
def wa_akg(payload):
    d=payload.get('data',{})
    if d.get('isGroup') or d.get('key',{}).get('fromMe'):
        raise ValueError('Only inbound direct customer messages can become orders')
    if not d.get('key',{}).get('id'): raise ValueError('Event needs a stable message ID')
    sender=d.get('from','').split('@')[0]
    return {'phone':sender,'body':d.get('content',''),'external_id':'akg-'+str(d.get('key',{}).get('id','')),'kind':'text' if d.get('type')=='TEXT' else 'media'}

def wechaty(payload):
    if payload.get('self') or payload.get('room'):
        raise ValueError('Only inbound direct messages can become orders')
    if not payload.get('id'): raise ValueError('Event needs a stable message ID')
    return {'phone':payload.get('phone',''),'body':payload.get('text',''),'external_id':'wechaty-'+str(payload.get('id','')),'kind':'text' if payload.get('type','text')=='text' else 'media'}
