o
    «=)j?  ã                   @  sJ   d Z ddlmZ ddlmZmZmZ ddd	„Zddd„Z	dddd„Z	dS )u>   LeadSquared activity attribution â€” agent name on activities.é    )Úannotations)ÚAnyÚDictÚOptionalÚcallúDict[str, Any]ÚreturnÚstrc                 C  s<   dD ]}|   |¡}|d urt|ƒ ¡ rt|ƒ ¡   S qdS )N)Ú	agentnameÚ
agent_nameÚ )Úgetr	   Ústrip)r   ÚkeyÚvalue© r   ú?/home/aiteam/pcaa-dev/dashboard-backend/lsq_activity_helpers.pyÚlsq_agent_name_from_call   s   
€r   Úintegration_configr   úOptional[str]c                 C  sœ   |sdS |   d¡p
i }t|tƒsdS |  |¡}|dur't|ƒ ¡ r't|ƒ ¡ S | ¡ }| ¡ D ]\}}t|ƒ ¡  ¡ |krKt|ƒ ¡ rKt|ƒ ¡   S q/dS )zAMap Mcube agent name to LeadSquared user email (optional config).NÚagent_owner_mapping)r   Ú
isinstanceÚdictr	   r   ÚlowerÚitems)r   r   ÚmappingÚdirectÚagent_lowerr   Úemailr   r   r   Úresolve_lsq_owner_email   s   

 €r   NÚpayloadúOptional[Dict[str, Any]]c                 C  s2   t |ƒ}|s| S |pi }t||ƒ}|r|| d< | S )zMSet ActivityOwnerEmail when mapped so LeadSquared shows 'Added by' the agent.ÚActivityOwnerEmail)r   r   )r    r   r   r   ÚconfigÚowner_emailr   r   r   Úapply_lsq_agent_attribution    s   
r%   )r   r   r   r	   )r   r   r   r	   r   r   )N)r    r   r   r   r   r!   r   r   )
Ú__doc__Ú
__future__r   Útypingr   r   r   r   r   r%   r   r   r   r   Ú<module>   s    

ý