a
     >.j~+  ã                   @   sT   d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	 dd„ Z
dd„ Zdd„ ZdS )	é    N)Úregistrar_logÚenviar_whatsappÚobter_mensagem_dbÚlimpar_cpf_cnpjÚconsultar_cliente_por_cpfÚconsultar_cliente_por_idc                 C   s†   t | |ƒ}g }g d¢}|D ]>}| dd¡ ¡ }||vrB| |¡ qtdd| d¡› ƒ qtddt|ƒ› dt|ƒt|ƒ › d	ƒ |S )
u<   Busca cadastros e filtra apenas os que NÃƒO sÃ£o Arquivados.)Z	arquivadoZinativoZ	canceladoÚstatus_clienteÚ ÚFLUXO_IDENTIFICACAOzIgnorando cadastro arquivado: Ú
nome_razaozEncontrados z cadastros ativos (ignorados: ú))r   ÚgetÚlowerÚappendr   Úlen)ÚcursorÚcpf_cnpjÚ	cadastrosZcadastros_filtradosZstatus_ignoradosÚcÚstatus© r   ú$/var/www/html/fluxo_identificacao.pyÚbuscar_cadastros_radiusnet   s    
(r   c              	   C   s   d}d}| s||fS |   dg ¡}|rng }t|d tƒr\|D ]}|  d¡r:| |  d¡¡ q:n|}|rnd |¡}|   dg ¡}|røg }t|d tƒr>|D ]¢}|  dd¡}	|  d	d¡}
|
r˜t d
d|
¡}t|ƒdkrò|dd… › d|dd… › }n2t|ƒdkr |dd… › d|dd… › }n|}| d|	› d|› ¡ q˜nª|D ]¤}|rBt d
d|¡}t|ƒdkr˜d|dd… › d|dd… › d|dd… › }nBt|ƒdkrÖd|dd… › d|dd… › d|dd… › }n|}| |¡ qB|rød |¡}||fS )už   
    Formata emails e telefones no formato vertical para melhor visualizaÃ§Ã£o no celular.
    Retorna (email_str, telefone_str) prontos para exibiÃ§Ã£o.
    u   nÃ£o informadoÚemailsr   ÚemailÚ
Ú	telefonesÚdddr	   Útelefonez\Dé	   Né   ú-é   é   ú(z) é   é   é   é
   é   )r   Ú
isinstanceÚdictr   ÚjoinÚreÚsubr   )Údados_clienteÚ	email_strÚtelefone_strr   Zlista_emailsÚer   Zlista_telefonesÚtr   ÚtelZ	tel_limpoZtel_formatador   r   r   Úformatar_contatos   sR    

  00
r5   c           !   	   C   s  |d }|d }|  dd¡}|  d¡}	|	r4t |	¡ni }
tdd|› ƒ |dkr°|
  d¡}|stdd	ƒ t||d
ƒ | d|f¡ |  ¡  d S t||ƒ}|s.|
  dd¡d }||
d< |dkröt|dƒ}t|||ƒ | dt 	|
¡|f¡ |  ¡  n4t|dƒ}t|||ƒ | dt 	|
¡|f¡ |  ¡  d S ||
d< t
|ƒdkr°|d   d¡|
d< | dt 	|
¡|f¡ |  ¡  t||
d ƒ}t|ƒ\}}t|dƒj||d}t|||ƒ nüg }t|dƒD ]°\}}|  dd¡}|  dd¡}|  dg ¡}d}|r:|d   dd¡}| d ¡}t
|ƒdkr:t
|ƒdkr6|d!  ¡ nd}|› d"|› d"|› }|rb|d"|› 7 }| |¡ q¾d#}|d$ |¡7 }t|||ƒ | d%t 	|
¡|f¡ |  ¡  nX|d&kr˜z¸t| ¡ ƒd }|
  dg ¡}d|  krôt
|ƒk rdn nl||   d¡|
d< | dt 	|
¡|f¡ |  ¡  t||
d ƒ}t|ƒ\}}t|dƒj||d}t|||ƒ nt||d'ƒ W n  ty’   t||d(ƒ Y n0 np|d)krZ| ¡  ¡ }|d*ksÂ|d+krðt|d,ƒ} t||| ƒ | d-|f¡ |  ¡  nh|d.krt||d/ƒ | d0|f¡ |  ¡  n:|d+krLt||d1ƒ | d0|f¡ |  ¡  nt||d2ƒ n®|d3krât|ƒ}t
|ƒd4v rÊ||
d< | d5|t 	|
¡|f¡ |  ¡  t| ||i |¥dt 	|
¡d6œ¥||ƒ nt|dƒ}t|||ƒ n&tdd7|› ƒ | d|f¡ |  ¡  d S )8NÚidÚcliente_numeroÚestado_atualÚPROCESSAR_DOCUMENTOÚcontexto_jsonr
   zEstado: Úcpfu   CPF nÃ£o encontrado no contextoz%Por favor, informe seu CPF novamente.zEUPDATE atendimentos SET estado_atual = 'AGUARDANDO_CPF' WHERE id = %sZtentativas_cpfr   é   r&   Zmsg_identificacao_erro_fugazÚ
                    UPDATE atendimentos
                    SET status = 'fila', setor_id = 2, fluxo_atual = 'HUMANO', estado_atual = 'AGUARDANDO', contexto_json = %s
                    WHERE id = %s
                Z!msg_cpf_nao_encontrado_repescagemzYUPDATE atendimentos SET contexto_json = %s, estado_atual = 'AGUARDANDO_CPF' WHERE id = %sr   Ú
id_clientez[UPDATE atendimentos SET contexto_json = %s, estado_atual = 'VALIDAR_CONTATOS' WHERE id = %sZmsg_validacao_contatos)r   r   r   ZClienter   ZDesconhecidoÚplanosr	   Zendereco_instalacaor!   éþÿÿÿz - u   Identifiquei que vocÃª possui mais de um cadastro vinculado ao seu documento.

Por favor, responda com o nÃºmero da opÃ§Ã£o correspondente:

r   z^UPDATE atendimentos SET contexto_json = %s, estado_atual = 'SELECIONAR_CADASTRO' WHERE id = %sZSELECIONAR_CADASTROu@   OpÃ§Ã£o invÃ¡lida. Digite o nÃºmero correto da opÃ§Ã£o desejada.u,   Digite apenas o nÃºmero da opÃ§Ã£o desejada.ZVALIDAR_CONTATOSÚ1Ú3Zmsg_sucesso_identificacaoz§
                UPDATE atendimentos
                SET fluxo_atual = 'CLASSIFICACAO', estado_atual = 'AGUARDANDO_MENSAGEM'
                WHERE id = %s
            Ú2u>   Transferindo para um atendente para atualizaÃ§Ã£o de cadastro.z¶
                UPDATE atendimentos
                SET status = 'fila', setor_id = 2, fluxo_atual = 'HUMANO', estado_atual = 'AGUARDANDO'
                WHERE id = %s
            z:Transferindo para um atendente para adicionar novo e-mail.ug   Resposta invÃ¡lida. Digite 1 para dados corretos, 2 para adicionar telefone ou 3 para adicionar e-mail.ZAGUARDANDO_CPF)r%   é   z®
                UPDATE atendimentos
                SET cliente_cpf = %s, contexto_json = %s, estado_atual = 'PROCESSAR_DOCUMENTO'
                WHERE id = %s
            )r8   r:   zEstado desconhecido: )r   ÚjsonÚloadsr   r   ÚexecuteÚcommitr   r   Údumpsr   r   r5   ÚformatÚ	enumerateÚsplitÚstripr   r,   ÚintÚ
ValueErrorr   r   Ú	processar)!Úconnr   ÚjobÚatendimentoÚconfigsÚmensagem_brutaÚatendimento_idÚnumeroZestadoÚraw_ctxÚctxr;   r   Z
tentativasÚmsgr/   r0   r1   Z	msg_validZlistaÚir   Znomer   r>   ZenderecoÚendZpartesZlinhaZmsg_menuZescolhaZrespostaZmsg_sucessor   r   r   rO   [   sÜ    





ü



 

ü

ü

ü

ü(
rO   )rD   r-   Ú	importlibÚutils_hibridor   r   r   r   r   r   r   r5   rO   r   r   r   r   Ú<module>   s    =