Ë
    úðÔiè  ã                   ód   — d Z ddlZddlZddlmZmZ  ej                  e«      ZdZ	 G d„ d«      Z
y)u6   Deduplikacja leadÃ³w wzglÄ™dem CRM (cache w pamiÄ™ci).é    Né   )Ú	CRMClientÚ_norm_phonei  c                   ój   — e Zd Zdefd„Zddeddfd„Zdedz  dedz  defd	„Zdedz  dedz  ddfd
„Z	y)ÚDeduplicatorÚcrmc                 ó\   — || _         t        «       | _        t        «       | _        d| _        y )Ng        )r   ÚsetÚ_emailsÚ_phonesÚ
_loaded_at)Úselfr   s     ú=/var/www/html/scraper-prawny.klono.ai/scraper/deduplicator.pyÚ__init__zDeduplicator.__init__   s"   € ØˆŒÜ!$£ˆŒÜ!$£ˆŒØ!$ˆ�ó    ÚforceÚreturnNc                 óÒ  — |s5| j                   r)t        j                  «       | j                   z
  t        k  ryt        j	                  d«       | j
                  j                  «       }|D �ch c]D  }|j                  d«      r1|j                  d«      xs dj                  «       j                  «       ’ŒF c}| _
        |D �ch c]1  }|j                  d«      rt        |j                  d«      xs d«      ’Œ3 c}| _        t        j                  «       | _         t        j	                  dt        |«      t        | j                  «      t        | j                  «      «       yc c}w c c}w )u3   Pobiera wszystkie istniejÄ…ce leady z CRM do cache.Nz2Loading existing leads from CRM for dedup cache...ÚemailÚ Úphonez2Dedup cache loaded: %d leads, %d emails, %d phones)r   ÚtimeÚCACHE_TTL_SECONDSÚlogÚinfor   Úget_all_leadsÚgetÚlowerÚstripr   r   r   Úlen)r   r   ÚleadsÚls       r   ÚloadzDeduplicator.load   s
  € á˜Ÿš¬d¯i©i«k¸D¿O¹OÑ.KÔO`Ò-`ØÜ�‰ÐEÔFØ—‘×&Ñ&Ó(ˆð ö
àØ�u‰u�WŒ~ð �U‰U�7‹^Ò!˜r×(Ñ(Ó*×0Ñ0Õ2ò
ˆŒð ö
àØ�u‰u�WŒ~ô ˜Ÿ™˜g›Ò,¨"Õ-ò
ˆŒô
 Ÿ)™)›+ˆŒÜ�‰Ø@Ü�‹JÜ�—‘ÓÜ�—‘Óõ		
ùò
ùò

s   Á+A	EÃ 6E$r   r   c                 óº   — | j                  «        |r+|j                  «       j                  «       | j                  v ry|rt	        |«      }|r|| j
                  v ryy)u;   Sprawdza w cache czy email lub telefon juÅ¼ istnieje w CRM.TF)r#   r   r   r   r   r   ©r   r   r   Únps       r   Úis_duplicatezDeduplicator.is_duplicate,   sL   € à�	‰	ŒÙ�U—[‘[“]×(Ñ(Ó*¨d¯l©lÑ:ØÙÜ˜UÓ#ˆBÙ�b˜DŸL™LÑ(ØØr   c                 óÎ   — |r7| j                   j                  |j                  «       j                  «       «       |r*t	        |«      }|r| j
                  j                  |«       yyy)uT   Dodaje Å›wieÅ¼o wgranego leada do cache, by uniknÄ…Ä‡ duplikatÃ³w w tej samej sesji.N)r   Úaddr   r   r   r   r%   s       r   ÚrememberzDeduplicator.remember7   sR   € áØ�L‰L×Ñ˜UŸ[™[›]×0Ñ0Ó2Ô3ÙÜ˜UÓ#ˆBÙØ—‘× Ñ  Õ$ð ð r   )F)
Ú__name__Ú
__module__Ú__qualname__r   r   Úboolr#   Ústrr'   r*   © r   r   r   r      se   „ ð%˜Ió %ñ
˜$ð 
¨4ó 
ð0	 #¨¡*ð 	°S¸4±Zð 	ÀDó 	ð%˜c D™jð %°°t±ð %Àô %r   r   )Ú__doc__Úloggingr   r   r   r   Ú	getLoggerr+   r   r   r   r0   r   r   ú<module>r4      s3   ðÙ <ã Û ç 'à€g×Ñ˜Ó!€àÐ ÷1%ò 1%r   