
    Yf                     R    d dl Z d dlmZ d dlT  G d dej        j                  ZdS )    N)Random)*c                   >     e Zd ZdZd Zd Z fdZdd fd
Z xZS )CmfChannelMessageTc                    | j         j        rd }| j        dk    r| j        j        }n| j        dk    r| j        j        }|sd S t          j                            |dg          }|d S |j	        d         }t          
                    |d| j                  | _         | j        | j         _        t                              d| j                     | j        | j         _        | j        | j         j        _        d S )Ninouttopicsr      )parentlog_typedealz_audit_message )chat_messageis_nullmessage_flowperson_from_idvalueperson_to_idmodelsCmfChatGroupp2p_chatr
   CmfChatMessager   person_from
cmf_authorgdebugtextchanneldefault_channel)self
contact_idchattopics       +./modules/crm/models/cmf_channel_message.py_process_chat_messagez'CmfChannelMessage._process_chat_message   s    $ 	;J D((!06

"e++!.4
 &//
XJGGD|KNE & 5 5UQUYU` 5 a aD+/+;D(GG9d&799:::!%37< 000    c                     t                               d           | j        s	| j        dvr,t                               d| j         d| j                    d S |                     ddg           | j        dk    r| j        n| j        }|j        rt          	                    d           d S t                               d	|            |                    g d
           |j
        rt                               d           d S t                               d           dd| j        gdg ddd|j        ggg ddd|j        gggg}|                     |dgdg          }t                               d|            |ra|j        rZ|j        j        j        | j        j        j        k    r6t                               d|  d| d|j                    |j        | _        d S t                               d           t          j                            dd|j        ggdd| j        j        j        ggdg           }|r&t                               d!|            || _        d S t                               d"           d }|j        r*t          j                            |j        j        #          }|s,|j        r%t          j                            |j        $          }|st+          | j        j        t          j                  rd S t                               d%           t                              | j        j        | j        j        | j        &          }|j        r|j        j        f|_        |j        r|j        |_        |                                 nt                               d'|            t          j                            d(d|j        g)          }|r&t                               d*|            || _        d S d S )+Nzprocess_parent called)r   r	   u   Родитель u   , направление: r   	person_tor   uz   Не найден контакт, для почты это нормально, для других каналов - нетu   Нашли контакта: )
user_localphoneemailuU   С локальными пользователями не создаем сделокu|   И он даже не локальный. Ищем сделку в которой последний раз общалисьidz!=OR)r   ==r   r   r.   )r   r.   r	   r   z-cmf_modified_atzparent.pipeline)filterorder_byfieldszlast_message=u   Обрабатывая u5    нашли предыдущее сообщение: z parent=u_   Старых сообщений не нашли. Ищем сделку по контакту...contactsINpipeline_id)r/   r0   ur   Нашли сделку, которую будем использовать в качестве родителя: uz   Сделки не нашлось, поэтому на основе контакта попробуем найти лида)lead_phone_name)lead_email_nameu   Лида не нашлось, попробуем создать его на основе контакта. Он же должен создать нам сделку.)r   r   r   u   Нашли лида lead_id)r/   z_process_parent: )r   r   r   r   load_fieldsr   r(   r   loggingwarningr)   r,   getpipeliner   r   CmfDealr*   CmfLeadnumber_e164r+   
isinstancer   
CmfMailboxnamer5   r6   save)r    contact_filterlast_message	last_dealleadr   s          r$   _process_parentz!CmfChannelMessage._process_parent   s   	'(((; 	$+=@@GGbbbtO`bbcccF-5666&*&74&?&?$""T^? 	OO  Y  Z  Z  ZF	999:::<<<=== 	GGklllF	  O  	P  	P  	P4!---0@$
/ST...wz0RS
 xxw:L9MWhVixjj	.../// 	L/ 	L4G4P4SW[WcWjWm4m4mGG  Ud  U  Uiu  U  U  @L  @S  U  U  V  V  V&-DKF	qrrrN&&
D7:,/O0=tT\EXE[/\/1<N;O ' Q Q	  	GG  U  JS  U  U  V  V  V#DKF	  M  	N  	N  	N= 	Q>%%gm6O%PPD 	E 	E>%%gm%DDD 	3 $,,f.?@@ GG  |  }  }  }>>)<4<CT^b^j>kkD} B'.}'@'A$} 5'.}$IIKKKKGG1411222~!!)T47)C!DD  	GG...///DKKK	 	r&   c                 N    t                                                      g dz   S )N)
message_idzchannel.parentr   zparent.default_channelzchat_message.textz#chat_message.parent.default_channel)supersave_preload_fields)r    	__class__s    r$   rM   z%CmfChannelMessage.save_preload_fieldsc   s4    ww**,, 0l 0l 0l l 	lr&   r   )depthc                |   t                               d           | j        j        r}| j        rv| j        j        j                            d          rRdt          j	        t          j        d                                                    z                                   | _        | j        j        r| j        dk    rt           j        | _        | j        j        r | j        r| j                                         |                                  |                                   t/                      j        |d|i| d S )NuA   Вызвано сохранение объекта ChannelMessageCmfWhatsapps   3EB0   r	   rO   )r   r   rK   r   r   r,   r   
startswithbinasciihexlifyr   get_random_bytesupperdecoder   r   current_personmessage_status
is_changedr   emitrI   r%   rL   rC   )r    rO   argskwargsrN   s       r$   rC   zCmfChannelMessage.saveh   s%   	STTT?" 	lt| 	l|$//>> l#*X-=f>UVW>X>X-Y-Y-_-_-a-a#a"i"i"k"k# 	0(9U(B(B /D) 	)  )!&&(((""$$$d2%2622222r&   )	__name__
__module____qualname__	api_allowr%   rI   rM   rC   __classcell__)rN   s   @r$   r   r      s        I@ @ @&C C CJl l l l l
 !" 3 3 3 3 3 3 3 3 3 3 3r&   r   )rT   Cryptor   cmf.includecmfr   CmfModelr    r&   r$   <module>ri      so              l3 l3 l3 l3 l3
+ l3 l3 l3 l3 l3r&   