
    iz                     x    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ de	dee	   fdZ
d	 Zd
 Zedk(  r e        yy)    N)Path)List)DocumentAnalyst)run_credit_pipelinepathreturnc                    t        |       }|j                         st        d|        |j                         rt	        |      gS |j                         ra|j                         D cg c]9  }|j                         r'|j                  j                         dv rt	        |      ; }}|st        d      |S t        d      c c}w )ud   
    Retorna lista de ficheiros a analisar
    a partir de um caminho (ficheiro ou diretório).
    u   Caminho não encontrado: >   .jpg.pdf.png.tif.docx.jpeg.tiff.webpu.   Diretório não contém documentos suportados.u   Caminho inválido.)
r   existsFileNotFoundErroris_filestris_diriterdirsuffixlower
ValueError)r   pffiless       GC:\Users\dkayr\PycharmProjects\Credit_Scoring_plataform\tests\teste2.pyresolve_filesr   	   s    
 	T
A88:";D6 BCCyy{Axxxz YY[
 yy{  %  F  	 
 MNN
)
**
s   (>Cc                 *   t        d       t        d| j                          t        d       t        d| j                          t        d| j                  d       t        d       | j                  r | j                  D ]  }t        d|         nt        d	       t        | d
i       xs i j                  d      }|rt        d       t        d|j                  d              t        d|j                  d              t        d|j                  d              t        d|j                  d              t        d|j                  d              t        d|j                  d              t        d|j                  d              t        d|j                  d              t        d|j                  d              t        d|j                  d               t        d!|j                  d"              |j                  d#      xs g }t        d$       |D ]  }t        d%|         t        d&       t        d'| j                  d       t        d(| j                  d       t        d)| j                  d       t        d*| j                  d       t        d+       | j                  r4| j                  j                         D ]  \  }}t        d| d,|         nt        d-       t        d.       y/)0zIImprime resultado por documento (campos reais de DocumentAnalysisResult).zQ
================================================================================u   📄 DOCUMENTO: P================================================================================z)Tipo detectado (document_type_detected): u/   Confiança do tipo (document_type_confidence): z.2fu   
⚠️ ALERTAS  - z  Nenhum alerta.featuresbank_statement_featuresu1   
📊 BANK_STATEMENT_FEATURES (extrato bancário)z  analysis_status: analysis_statusz  confidence: 
confidencez  period_days: period_daysz  records_count: records_countz  total_creditos: total_creditosz  total_debitos: total_debitosz  fluxo_liquido: fluxo_liquidoz  saldo_medio: saldo_medioz  saldo_minimo: saldo_minimoz  statement_score: statement_scorez  recommended_max_by_term: recommended_max_by_termreasonsz
  reasons:    - u   
🔍 SCORESz  Legibilidade:  z  Estrutura:     u     Coerência:     z  Credibilidade: u   
📌 ENTIDADES EXTRAÍDASz: z  (nenhuma entidade encontrada)zQ================================================================================
N)printdocument_iddocument_type_detecteddocument_type_confidencealertsgetattrgetlegibilidade_scoreestrutura_scorecoerencia_scorecredibilidade_scoreextracted_entitiesitems)resultalertbfr0   rkvs          r   print_resultrE   &   s   	/	V//0
12	(O	5f6S6S5T
UV	;F<[<[\_;`
ab	
}}]]ED.! # 	 !
&*b
)
/R	4	45N	OB	BC#BFF+<$=#>?@rvvl3456} 5678!"&&"9!:;<"266*:#;"<=>!"&&"9!:;<!"&&"9!:;<} 5678 !7 89:#BFF+<$=#>?@+BFF3L,M+NOP&&#)rlAF1#,  
/	f77<
=>	f44S9
:;	v55c:
;<	f88=
>?	
'(  --335DAqD2aS/" 6 	/0	/    c            	         t        t        j                        dk  r+t        d       t        d       t        j                  d       t        j                  d   } t        t        j                        dkD  rt        j                  d   nd}t        t        j                        dkD  rt        j                  d   nd}t        t        j                        dkD  rt        t        j                  d         nd	}t        t        j                        d
kD  rt        t        j                  d
         nd}t        t        j                        dkD  rt        t        j                  d         nd}	 t        |       }t        dt                      |D ]  }t        d|         t               }	t        d       |	j                  |      }
|
D ]  }t        |        t        d       t        ||||d ||      }|d   }|d   }|d   }t        d       t        d       t        d       t        d|j                          t        d|j                          t        d|j                          t        d|j                           t        d       |j"                  D ]  }t        d|         t        d       t        d       y # t        $ r.}t        d|        t        j                  d       Y d }~d }~ww xY w) N   zUso:zu  python tests/teste2.py <ficheiro_ou_diretorio> [company_name] [nuit] [meses_atividade] [valor_credito] [prazo_dias]   z
Teste Ltda             g     j@      zErro: u   
📂 Documentos encontrados: r"   u'   
🔎 Iniciando análise documental...
u(   
🔄 Executando pipeline end-to-end...
)r   input_company_name
input_nuitinput_meses_atividadefaturamento_mensalvalor_credito
prazo_diasdecisionriskscorer!   u   SAÍDA FINAL DO PIPELINEz	  score: z  decision: z  approved_amount: z	  flags: z  reasons (finais):r1   u&   
✅ Análise e pipeline concluídos.
)lensysargvr2   exitintfloatr   	Exceptionr   analyze_documentsrE   r   rY   rW   approved_amountflagsr0   )
input_pathcompany_namenuitmeses_atividaderU   rV   r   er   analystresultsr?   payloaddecision_outputrX   score_outputrB   s                    r   mainrn   Y   su   
388}qf  F  	G!J"%chh-!"3388A;Lchh-!+388A;D*-chh-!*;c#((1+&O*-chh-!*;E#((1+&M%(]Q%6SXXa[!BJj)
 
+CJ<
89QCj  G	
56''.GV  

67!'-#G j)O6?D7#L	(O	
$%	(O	Il(()
*+	L112
34	 ? ?@
AB	Io++,
-.	
 $$qcl %	(O	
45W  qcls   ,K	 		L #K;;L __main__)r[   pathlibr   typingr   6src.infra.document_analysis.analyzers.document_analystr   src.app.pipeliner   r   r   rE   rn   __name__ rF   r   <module>rv      sK    
   R 0+ +S	 +:0f:6z zF rF   