§
    ÝŸ’j°  ã                  ób   — d dl mZ d dlmZ ddlmZ ddlmZmZm	Z	m
Z
mZ  G d„ de¦  «        Zd	S )
é    )Úannotations)ÚAnyé   )ÚBasePostgresClienté   )ÚINSERT_MESSAGEÚUPSERT_CONTACTÚUPSERT_CONVERSATIONÚUPSERT_TELEGRAM_TOPIC_MAPÚUPSERT_ZALO_ACCOUNTc                  ób   — e Zd ZdZdd„Zdd„Zdd„Zdd	„Zdd
„Zdd„Z	dd„Z
dd„Zdd„Zdd„ZdS )ÚCRMMixinz1CRM integration database queries (Zalo/Telegram).Údataúdict[str, Any]Úreturnúdict[str, Any] | Nonec                ó²  — |                       ¦   «         sdS |                      ¦   «         5 }|                     ¦   «         5 }|                     t          |¦  «         |                     ¦   «          |j        r#t          |                     ¦   «         pi ¦  «        ndcddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zUpsert a ZaloAccount record.N)	Ú
is_enabledÚget_connectionÚcursorÚexecuter   ÚcommitÚrowcountÚdictÚfetchone©Úselfr   Úconnr   s       ú1C:\Projects\DSCons\app\core\postgres\crm\mixin.pyÚupsert_zalo_accountzCRMMixin.upsert_zalo_account   ó†  € à�ŠÑ Ô ð 	Ø�4Ø× Ò Ñ"Ô"ð 	N d¨D¯KªK©M¬Mð 	N¸VØ�NŠNÕ.°Ñ5Ô5Ð5Ø�KŠK‰MŒMˆMØ4:´OÐM•4˜ŸšÑ)Ô)Ð/¨RÑ0Ô0Ð0Èð	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nó6   «CÁ AB4ÂCÂ4B8	Â8CÂ;B8	Â<CÃCÃCc                ó²  — |                       ¦   «         sdS |                      ¦   «         5 }|                     ¦   «         5 }|                     t          |¦  «         |                     ¦   «          |j        r#t          |                     ¦   «         pi ¦  «        ndcddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zUpsert a Contact record.N)	r   r   r   r   r	   r   r   r   r   r   s       r   Úupsert_contactzCRMMixin.upsert_contact   ó…  € à�ŠÑ Ô ð 	Ø�4Ø× Ò Ñ"Ô"ð 	N d¨D¯KªK©M¬Mð 	N¸VØ�NŠN�>¨4Ñ0Ô0Ð0Ø�KŠK‰MŒMˆMØ4:´OÐM•4˜ŸšÑ)Ô)Ð/¨RÑ0Ô0Ð0Èð	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nr"   c                ó²  — |                       ¦   «         sdS |                      ¦   «         5 }|                     ¦   «         5 }|                     t          |¦  «         |                     ¦   «          |j        r#t          |                     ¦   «         pi ¦  «        ndcddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zUpsert a Conversation record.N)	r   r   r   r   r
   r   r   r   r   r   s       r   Úupsert_conversationzCRMMixin.upsert_conversation$   r!   r"   c                ó²  — |                       ¦   «         sdS |                      ¦   «         5 }|                     ¦   «         5 }|                     t          |¦  «         |                     ¦   «          |j        r#t          |                     ¦   «         pi ¦  «        ndcddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zInsert a Message record.N)	r   r   r   r   r   r   r   r   r   r   s       r   Úinsert_messagezCRMMixin.insert_message-   r%   r"   c                ó²  — |                       ¦   «         sdS |                      ¦   «         5 }|                     ¦   «         5 }|                     t          |¦  «         |                     ¦   «          |j        r#t          |                     ¦   «         pi ¦  «        ndcddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z!Upsert a TelegramTopicMap record.N)	r   r   r   r   r   r   r   r   r   r   s       r   Úupsert_telegram_topic_mapz"CRMMixin.upsert_telegram_topic_map6   s†  € à�ŠÑ Ô ð 	Ø�4Ø× Ò Ñ"Ô"ð 	N d¨D¯KªK©M¬Mð 	N¸VØ�NŠNÕ4°dÑ;Ô;Ð;Ø�KŠK‰MŒMˆMØ4:´OÐM•4˜ŸšÑ)Ô)Ð/¨RÑ0Ô0Ð0Èð	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nr"   úlist[dict[str, Any]]c                ón  — |                       ¦   «         sg S ddlm} |                      ¦   «         5 }|                     ¦   «         5 }|                     |¦  «         d„ |                     ¦   «         D ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zGet all external contacts.r   )ÚGET_EXTERNAL_CONTACTSc                ó,   — g | ]}t          |¦  «        ‘ŒS © ©r   ©Ú.0Úrows     r   ú
<listcomp>z2CRMMixin.get_external_contacts.<locals>.<listcomp>G   ó   € Ð;Ð;Ð; #•D˜‘I”IÐ;Ð;Ð;ó    N)r   Úqueriesr.   r   r   r   Úfetchall)r   r.   r   r   s       r   Úget_external_contactszCRMMixin.get_external_contacts?   sS  € à�ŠÑ Ô ð 	ØˆIØ2Ð2Ð2Ð2Ð2Ð2à× Ò Ñ"Ô"ð 	< d¨D¯KªK©M¬Mð 	<¸VØ�NŠNÐ0Ñ1Ô1Ð1Ø;Ð;¨¯ªÑ):Ô):Ð;Ñ;Ô;ð	<ð 	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ó5   ±B*Á3BÁ9B*ÂB	ÂB*ÂB	ÂB*Â*B.Â1B.c                ón  — |                       ¦   «         sg S ddlm} |                      ¦   «         5 }|                     ¦   «         5 }|                     |¦  «         d„ |                     ¦   «         D ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z)Get all contacts (internal and external).r   )ÚGET_ALL_CONTACTSc                ó,   — g | ]}t          |¦  «        ‘ŒS r0   r1   r2   s     r   r5   z-CRMMixin.get_all_contacts.<locals>.<listcomp>Q   r6   r7   N)r   r8   r=   r   r   r   r9   )r   r=   r   r   s       r   Úget_all_contactszCRMMixin.get_all_contactsI   sS  € à�ŠÑ Ô ð 	ØˆIØ-Ð-Ð-Ð-Ð-Ð-à× Ò Ñ"Ô"ð 	< d¨D¯KªK©M¬Mð 	<¸VØ�NŠNÐ+Ñ,Ô,Ð,Ø;Ð;¨¯ªÑ):Ô):Ð;Ñ;Ô;ð	<ð 	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<r;   Úconversation_idÚstrc                óv  — |                       ¦   «         sg S ddlm} |                      ¦   «         5 }|                     ¦   «         5 }|                     |d|i¦  «         d„ |                     ¦   «         D ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   	 ddd¦  «         dS # 1 swxY w Y   dS )z#Get all messages in a conversation.r   )ÚGET_MESSAGES_BY_CONVERSATIONr@   c                ó,   — g | ]}t          |¦  «        ‘ŒS r0   r1   r2   s     r   r5   z9CRMMixin.get_messages_by_conversation.<locals>.<listcomp>`   s   € Ð?Ð?Ð? c�˜S™	œ	Ð?Ð?Ð?r7   N)r   r8   rC   r   r   r   r9   )r   r@   rC   r   r   s        r   Úget_messages_by_conversationz%CRMMixin.get_messages_by_conversationS   s˜  € ð �ŠÑ Ô ð 	ØˆIØ9Ð9Ð9Ð9Ð9Ð9à× Ò Ñ"Ô"ð 	@ dØ—’‘”ð @ &Ø—’Ø0Ð3DÀoÐ2Vñô ð ð @Ð?¨V¯_ª_Ñ->Ô->Ð?Ñ?Ô?ð	@ð @ð @ð @ñ @ô @ð @ð	@ð 	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð@ð @ð @ð @øøøð @ð @ð @ð @ð @ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s5   ±B.Á6BÁ<B.ÂB	ÂB.ÂB	ÂB.Â.B2Â5B2c                óˆ  — |                       ¦   «         sdS ddlm} |                      ¦   «         5 }|                     ¦   «         5 }|                     |d|i¦  «         |                     ¦   «         }|rt          |¦  «        ndcddd¦  «         cddd¦  «         S # 1 swxY w Y   	 ddd¦  «         dS # 1 swxY w Y   dS )z!Get topic map by conversation id.Nr   )Ú"GET_TELEGRAM_TOPIC_BY_CONVERSATIONr@   )r   r8   rG   r   r   r   r   r   )r   r@   rG   r   r   r4   s         r   Ú"get_telegram_topic_by_conversationz+CRMMixin.get_telegram_topic_by_conversationb   sq  € ð �ŠÑ Ô ð 	Ø�4Ø?Ð?Ð?Ð?Ð?Ð?à× Ò Ñ"Ô"ð 	2 dØ—’‘”ð 2 &Ø—’Ø6Ø&¨Ð8ñô ð ð —o’oÑ'Ô'�Ø$'Ð1•t˜C‘y”y�y¨Tð2ð 2ð 2ð 2ñ 2ô 2ð 2ð	2ð 	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ó5   ±B7Á?BÂB7ÂB"	Â"B7Â%B"	Â&B7Â7B;Â>B;Útelegram_topic_idc                óˆ  — |                       ¦   «         sdS ddlm} |                      ¦   «         5 }|                     ¦   «         5 }|                     |d|i¦  «         |                     ¦   «         }|rt          |¦  «        ndcddd¦  «         cddd¦  «         S # 1 swxY w Y   	 ddd¦  «         dS # 1 swxY w Y   dS )z#Get topic map by telegram topic id.Nr   )ÚGET_TELEGRAM_TOPIC_BY_IDrJ   )r   r8   rL   r   r   r   r   r   )r   rJ   rL   r   r   r4   s         r   Úget_telegram_topic_by_idz!CRMMixin.get_telegram_topic_by_ids   sp  € à�ŠÑ Ô ð 	Ø�4Ø5Ð5Ð5Ð5Ð5Ð5à× Ò Ñ"Ô"ð 	2 dØ—’‘”ð 2 &Ø—’Ø,Ð/BÐDUÐ.Vñô ð ð —o’oÑ'Ô'�Ø$'Ð1•t˜C‘y”y�y¨Tð2ð 2ð 2ð 2ñ 2ô 2ð 2ð	2ð 	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2rI   N)r   r   r   r   )r   r,   )r@   rA   r   r,   )r@   rA   r   r   )rJ   rA   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r$   r'   r)   r+   r:   r?   rE   rH   rM   r0   r7   r   r   r      sú   € € € € € Ø;Ð;ðNð Nð Nð NðNð Nð Nð NðNð Nð Nð NðNð Nð Nð NðNð Nð Nð Nð<ð <ð <ð <ð<ð <ð <ð <ð@ð @ð @ð @ð2ð 2ð 2ð 2ð"2ð 2ð 2ð 2ð 2ð 2r7   r   N)Ú
__future__r   Útypingr   Úbaser   r8   r   r	   r
   r   r   r   r0   r7   r   ú<module>rU      sÀ   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ðp2ð p2ð p2ð p2ð p2Ð!ñ p2ô p2ð p2ð p2ð p2r7   