
    "j                     <    d dl mZ d dlmZmZmZmZ  G d d      Zy)    )List)ProductCostInputTaxProfileInputMarketplaceInputPricingResultc            
       T    e Zd Zededededee   fd       Z	ede
dee   fd       Zy)	PricingValidatorproduct_costtax_profilemarketplacereturnc                    g }|j                   dk  r|j                  d       | j                  dk  r|j                  d       | j                  dk  r|j                  d       |j                  dk  r|j                  d       | j
                  |j                  |j                  |j                  |j                  |j                  d}|j                         D ]A  \  }}|dk  r|j                  d| d| d	       $|d
kD  s*|j                  d| d| d	       C | j                  j                         }|j                  }|dk(  r|dk(  r|j                  d       |dk(  r|dv r|j                  d| d       |j                  r |j                  dk  r|j                  d       d| j                  cxk  r| j                  k  rn |S |j                  d       |S )Nr   u0   ERRO: O preço de venda deve ser maior que zero.u*   ERRO: O custo real não pode ser negativo.u9   ERRO: O valor da nota fiscal (NF) não pode ser negativo.u>   ERRO: A MVA (Margem de Valor Agregado) não pode ser negativa.)u   Alíquota IPIzICMS OrigemzICMS DestinozDAS (Cheio)zDAS (Sem ICMS)u   Comissão Marketplaceu   ERRO: A alíquota/taxa de 'u   ' não pode ser negativa (z%).d   u   ' não pode exceder 100% (nacionalg      @u   ALERTA FISCAL: O produto está marcado como 'nacional', mas a alíquota de ICMS interestadual está configurada para 4% (comum para importados). Verifique se a origem ou a alíquota estão corretas.	importado)g      (@g      @ue   ALERTA FISCAL: O produto está marcado como 'importado', mas a alíquota de ICMS interestadual está z&%. Geralmente, importados utilizam 4%.uL   ALERTA FISCAL: O produto possui ST ativa, mas a MVA está zerada ou ausente.u   ALERTA DE CUSTO: O Custo Real informado é menor que o Valor da NF. Geralmente o Valor NF é igual ou inferior (meia nota) ao custo real. Confirme os valores.)selling_priceappend	real_costvalor_nfmva_rateipi_rateorigin_icms_ratedestination_icms_ratefull_das_ratedas_without_icms_ratefee_rateitemsproduct_originlowerhas_st)	r
   r   r   warningsrates_to_checknamerateoriginicms_origins	            L/var/www/hypershopcomercio.com.br/hyper-ai/app/services/pricing/validator.pyvalidate_inputsz PricingValidator.validate_inputs   s    $$)OONO!!A%OOHI  1$OOWX!#OO\] *22&77'==&44)??%0%9%9
 )..0 	iJD$ax"=dVC]^b]ccf gh"=dVC]^b]ccf gh		i ,,224!22ZK3$6OO  e  f[ [K%?OO  D  EP  DQ  Qw  x  y +"6"6!";OOjk &&>)>)>>  OO  }  ~    resultc                     g }| j                   dk  r|j                  d       n | j                   dk  r|j                  d       | j                  dk  r|j                  d       |S )Nr   ur   ALERTA DE PREJUÍZO: A margem de contribuição projetada é negativa. Esta venda resultará em perda de dinheiro.g      @u_   ALERTA DE MARGEM BAIXA: A margem de contribuição projetada está abaixo de 5%. Risco elevado.uA   ALERTA DE PREJUÍZO: O lucro projetado em Reais (R$) é negativo.)contribution_margin_percentr   profit_amount)r*   r!   s     r'   validate_resultz PricingValidator.validate_result:   sc    --1OO  Q  R//#5OO}~!#OO_`r)   N)__name__
__module____qualname__staticmethodr   r   r   r   strr(   r   r.    r)   r'   r	   r	      sh    2&6 2_ 2cs 2x|  ~A  yB 2 2h  $s)  r)   r	   N)typingr   app.services.pricing.typesr   r   r   r   r	   r4   r)   r'   <module>r7      s     i iC Cr)   