
    Ui%                        d dl mZmZmZmZmZ d dlmZ d dlZd dl	m
Z
mZ d dlmZ d dlmZ d dlmZ dZ ed	d
g      Zej)                  de
       edd       edd       edd       ed       ed       ed       ed       ed      fdededededz  dededee   dee   fd       Zdededz  dededz  dededee   dee   defd Zy)!    )	APIRouter
UploadFileFileFormHTTPException)ListN)CreditEvaluationResponseV2CompanyConsistencySummary)	DATA_ROOT)normalize_name)run_credit_pipeline)      -   z/credit-scorezCredit Scoring)prefixtagsz/evaluate/v2)response_model.zNome da empresa)descriptionNUITzMeses de atividadeinput_company_name
input_nuitinput_meses_atividadefaturamento_mensalvalor_credito
prazo_diasdocument_types	documentsc                 N   |t         vrt        ddt        t                      t        | |||||||      }|d   }	|d   }
|d   }|d   }|j	                  d	      }d
}|D ]+  }t        |di       xs i }|j	                  d      s&|d   } n t        |
j                  |d   |
j                  |	j                  |	j                  |	j                  |rt        |d   |d   |d         nd
|	j                  |	j                  |j	                  d      |j	                  d      |      S )ut   
    Avaliação de crédito end-to-end:
    documentos → company_consistency_report → scoring → decisão
    i  zprazo_dias deve ser um de status_codedetail)company_namenuitmeses_atividader   r   r   r   r   decisionscoreriskr   company_consistencyNfeaturesbank_statement_features
risk_classstatusconfidence_scorealerts)r,   r-   r.   recommended_max_valuerecommended_term_days)r&   r+   
confidencer%   approved_amountapproved_term_daysr(   reasonsflagsr/   r0   bank_statement_summary)ALLOWED_TERMSr   list_execute_pipelinegetgetattrr	   r&   r1   r%   r2   r3   r
   r4   r5   )r   r   r   r   r   r   r   r   payloadr%   r&   r'   documents_resultr(   r6   rbfs                    NC:\Users\dkayr\PycharmProjects\Credit_Scoring_plataform\api\routers\scoring.pyevaluate_credit_v2rA      sg     &/]0C/DE
 	

  '--#%	G z"HGE6?D{+!++&;<
 "Q
B'-266+,%'(A%B"	  &kk%##"" 00#66 !	 6&x001CD&x0
 '+  nn"hh'>?"hh'>?5+     r"   r#   r$   returnc           	      <   t        |      t        |      k7  rt        dd      t        t        |       z  }|j	                  dd       g }	t        ||      D ]  \  }
}|j                  s||
j                         z  }|j	                  dd       ||j                  z  }t        |d      5 }t        j                  |j                  |       ddd       |	j                  t        |              |	st        dd      t        |	| |||||	      S # 1 sw Y   FxY w)
ui   
    Responsável por:
    - validar inputs
    - guardar documentos
    - executar pipeline oficial
    i  z.Cada documento deve ter um tipo correspondenter   T)parentsexist_okwbNu&   Nenhum documento válido foi submetido)filesr   r   r   r   r   r   )lenr   r   r   mkdirzipfilenameloweropenshutilcopyfileobjfileappendstrr   )r"   r#   r$   r   r   r   r   r   company_dirsaved_pathsdoc_typerQ   doc_dir	file_pathbuffers                  r@   r9   r9   d   s   $ >c)n,C
 	

 n\::KdT2Kni8$}} 00dT2dmm+	)T"ftyy&1 # 	3y>* 9 ;
 	

 '--#  #"s   ,!DD	)fastapir   r   r   r   r   typingr   rO   api.schemasr	   r
   
api.configr   api.utils.storager   src.app.pipeliner   r7   routerpostrS   intfloatrA   dictr9    rB   r@   <module>rf      sn   D D   ! , 0	/1A0B	C ^,FG"34EF3F3!%c7K!L'+Dz93i $S	"&s)FFF F 	F
 F F IF JF HFZ88 *8 	8
 8 8 8 I8 J8 
8rB   