ó
    ®!˜j|  ã                  ó  • % S r SSKJr  SSKJrJrJr  SSKJr  SSKJ	r	  SSK
Jr  S\" S5      \" S	5      \" S
5      S.0rS\S'   \" S5      r\" S5      rSSS jjrSSS jjrSS.           SS jjrSS.     SS jjrg)u  Precios DeepSeek V4 peak / off-peak (oficial desde 2026-08-16 16:00 UTC).

Fuente: https://api-docs.deepseek.com/quick_start/pricing/
Peak UTC: 01:00â€“04:00 y 06:00â€“10:00. Peak = 2 Ã— off-peak.
Los precios guardados en BD son off-peak (cache miss / cache hit / output).
é    )Úannotations)ÚdatetimeÚ	timedeltaÚtimezone)ÚDecimal)ÚAny)ÚZoneInfozdeepseek-v4-flashz0.220000z0.007000z0.660000)ÚinputÚcached_inputÚoutputzdict[str, dict[str, Decimal]]ÚDEEPSEEK_OFF_PEAKÚ2úAmerica/SantiagoNc                ój  • U =(       d$    [         R                  " [        R                  5      nUR                  c  UR                  [        R                  S9nOUR                  [        R                  5      nUR                  nSUs=:*  =(       a    S:  Os  =(       d    SUs=:*  =(       a    S:  $ s  $ )z3True si la hora UTC cae en franja peak de DeepSeek.©Útzinfoé   é   é   é
   )r   Únowr   Úutcr   ÚreplaceÚ
astimezoneÚhour)Únow_utcr   r   s      Ú[C:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\utils\agents_deepseek_pricing.pyÚis_deepseek_peakr      sv   € à
×
/”X—\’\¤(§,¡,Ó/€CØ
‡z�zÑØ�k‰k¤§¡ˆkÐ.‰à�n‰nœXŸ\™\Ó*ˆØ�8‰8€Dà��M‹M˜ŒM×.˜q DŸ~›~¨2™~Ð.™~Ð.ó    c                óÈ  • U =(       d$    [         R                  " [        R                  5      nUR                  c  UR                  [        R                  S9nOUR                  [        R                  5      nUR                  [        5      n[        U5      nUU(       a  SOSU(       a  SOSUR                  S5      UR                  S5      SS	S
/S[        [        5      SS.
$ )u8   Estado horario actual para la UI / estimaciÃ³n de costo.r   ÚpeakÚoff_peakzHora punta (peak)zHora valle (off-peak)z%Y-%m-%d %H:%M:%S UTCz%Y-%m-%d %H:%M:%S %Zr   u   01:00â€“04:00 UTCu   06:00â€“10:00 UTCz}En Chile (UTC-4 estandar): approx. 21:00-00:00 y 02:00-06:00; con horario de verano UTC-3: approx. 22:00-01:00 y 03:00-07:00.z2026-08-16T16:00:00Z)
Úis_peakÚperiodÚperiod_labelÚutc_nowÚ	chile_nowÚchile_tzÚpeak_windows_utcÚpeak_windows_chile_noteÚpeak_multiplierÚeffective_from_utc)r   r   r   r   r   r   r   Ú	_CHILE_TZr   ÚstrftimeÚfloatÚPEAK_MULTIPLIER)r   r   Úchiler!   s       r   Úpricing_period_snapshotr2   (   s·   € à
×
/”X—\’\¤(§,¡,Ó/€CØ
‡z�zÑØ�k‰k¤§¡ˆkÐ.‰à�n‰nœXŸ\™\Ó*ˆØ�N‰Nœ9Ó%€EÜ˜CÓ €DàÞ ‘& jÞ/3Ñ+Ð9PØ—<‘<Ð 7Ó8Ø—^‘^Ð$:Ó;Ø&Ø0Ð2EÐFðNô !¤Ó1Ø4ñð r   )r   c                óœ  • U =(       d    SR                  5       n[        R                  U5      n[        [	        Ub  UO"U=(       d    0 R                  S5      =(       d    S5      5      n[        [	        Ub  UO"U=(       d    0 R                  S5      =(       d    S5      5      nUb  [        [	        U5      5      OU=(       d    0 R                  S5      n	[        U5      n
U
(       a  [        O
[        S5      nSS jnU" XxU	5      nU" U[        -  U[        -  U	b	  U	[        -  OS5      nU
(       a  UOUnUUUU
(       a  S	OS
[        U5      S.$ )z2Devuelve precios off-peak, peak y el activo ahora.Ú Nr
   r   r   r   Ú1c                óR   • [        U 5      [        U5      Ub  [        U5      S.$ S S.$ )N)Úinput_per_1m_usdÚoutput_per_1m_usdÚcached_input_per_1m_usd)r/   )ÚiÚoÚcs      r   Ú_packÚrates_for_model.<locals>._packW   s6   € ä % a£Ü!& q£Ø34±=¤u¨Q£xñ
ð 	
ð GKñ
ð 	
r   r!   r"   )r"   r!   ÚactiveÚactive_periodÚactive_multiplier)r:   r   r;   r   r<   zDecimal | NoneÚreturnzdict[str, float | None])Ústripr   Úgetr   Ústrr   r0   r/   )Ú
model_codeÚoff_peak_inputÚoff_peak_outputÚoff_peak_cachedr   ÚcodeÚcatalogÚinpÚoutÚcachedr!   Úmultr=   ÚoffÚ
peak_ratesr?   s                   r   Úrates_for_modelrR   B   s0  € ð ×˜"×#Ñ#Ó%€DÜ×#Ñ# DÓ)€GÜ
”#¨Ñ(B‘nÈÏÐTV×H[ÑH[Ð\cÓHd×HiÐhiÓjÓ
k€CÜ
”#¨Ñ)D‘oÈ7Ï=ÐVX×J]ÑJ]Ð^fÓJg×JlÐklÓmÓ
n€Cð Ñ&ô 	”�OÓ$Ô%à�m˜× Ñ  Ó0ð ô
 ˜GÓ$€DÞ"�?¬°«€Dô
ñ �˜&Ó
!€CÙØŒoÑØŒoÑØ&,Ñ&8ˆ”/Ò	!¸dó€Jö
  ‰Z S€FàØØÞ#'™¨ZÜ" 4›[ñð r   c               óh   • [        U5      (       a!  U [        -  R                  [        S5      5      $ U $ )Nz0.000001)r   r0   Úquantizer   )Úamountr   s     r   Úapply_period_multiplierrV   n   s/   € ô
 ˜× Ñ ØœÑ(×2Ñ2´7¸:Ó3FÓGÐGØ€Mr   )N)r   údatetime | NonerB   Úbool)r   rW   rB   údict[str, Any])rF   rE   rG   úDecimal | float | NonerH   rZ   rI   rZ   r   rW   rB   rY   )rU   r   r   rW   rB   r   )Ú__doc__Ú
__future__r   r   r   r   Údecimalr   Útypingr   Úzoneinfor	   r   Ú__annotations__r0   r-   r   r2   rR   rV   © r   r   Ú<module>rb      sÜ   ðòõ #ç 2Ñ 2Ý Ý Ý ð Ù˜Ó$Ù 
Ó+Ù˜*Ó%ñð4Ð Ð0ó ñ ˜#“,€ÙÐ'Ó(€	ö	/öð@  $ñ)àð)ð +ð)ð ,ð	)ð
 ,ð)ð ð)ð õ)ð^  $ñØðð ðð ö	r   