o
    ‰¬‹iß  ã                   @   s’   d dl Z d dlZd dlZd dlmZmZmZ d dlmZ e d¡Z	dZ
dddd	d
ddœZdZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zddd„ZdS )é    N)ÚdatetimeÚtimezoneÚ	timedelta)ÚurlopenÚGEBotz¤https://docs.google.com/spreadsheets/d/e/2PACX-1vTKwg06Ld5j5gT66m7iVU7pHm3KTM0HShnORH_pIfrbaBecXZe_LiXSOcoVHcToPMqxlC4FLtHlgBma/pub?gid={gid}&single=true&output=csvé=u`iÆÏãigt iÅºqi0=ç9ißk69)z2026-02z2026-01z2025-12z2025-11z2025-10z2025-09iÉc                 C   sV   | sdS |   dd¡  dd¡  dd¡ ¡ } | r| dv rdS ztt| ƒdƒW S    Y dS )Nr   ú$Ú ú,ú")z#DIV/0!z#REF!z#N/Aé   )ÚreplaceÚstripÚroundÚfloat©Úval© r   ú'/var/www/html/bot-teams/sheet_reader.pyÚparse_money   s
    r   c                 C   s<   | sdS |   dd¡  dd¡ ¡ } ztt| ƒƒW S    Y dS )Nr   r
   r	   r   )r   r   Úintr   r   r   r   r   Ú	parse_int   s   r   c                 C   s0   | sdS |   dd¡ ¡ } d| v sd| v rdS | S )Nz0%r   r	   z#DIVz#REFzN/A)r   r   r   r   r   r   Ú	parse_pct    s   r   c              
   C   sr   zt tj| ddd}tt t | ¡  	d¡¡¡ƒW S  t
y8 } zt d| › d|› ¡ W Y d }~d S d }~ww )N)Úgidé   )Útimeoutzutf-8zSheet fetch error gid=z: )r   ÚBASE_PUBÚformatÚlistÚcsvÚreaderÚioÚStringIOÚreadÚdecodeÚ	ExceptionÚlogÚerror)r   ÚrespÚer   r   r   Ú	fetch_csv&   s    €þr*   c              
   C   s(  | sdS i }t | ƒdkrt | d ƒdkrt| d d ƒ|d< d}t| ƒD ]\}}t |ƒdk r/q$|d  ¡ }|d  ¡ }|dkrCt|ƒ}q$|durM||d< n| dd¡|d< | D ]õ}t |ƒdk r`qW|d  ¡ }|d  ¡ }|dkrwt|ƒ|d	< qW|d
kr‚t|ƒ|d< qW|dkrt|ƒ|d< qW|dkrœd|vrœt|ƒ|d< qW|dkr§t|ƒ|d< qW|dkr²t|ƒ|d< qW|dkr½t|ƒ|d< qW|dkrÈt|ƒ|d< qW|dkrÓt|ƒ|d< qW|dkrÞt|ƒ|d< qW|dkrét|ƒ|d< qW|dkrôt|ƒ|d< qW|d krd!|vrt|ƒ|d!< qW|d"krt|ƒ|d#< qW|d$krt|ƒ|d%< qW|d&kr)t|ƒ|d'< qW|d(kr5t|ƒ|d)< qW|d*krAt|ƒ|d+< qW|d,v rLt|ƒ|d-< qWt| ƒD ]Z\}}t |ƒd.k r^qQ|d ri|d  ¡ nd/}|d rv|d  ¡ nd/}d0t |ƒd1kr„|d1 nd/v r‰	 d2t |ƒd1kr•|d1 nd/v s©d3t |ƒd1kr¥|d1 nd/v rª	 qQt| dd4… ƒD ]’\}}t |ƒd.k rÁq´|d1 rÌ|d1  ¡ nd/}	|dkrù|d.krùd2|	vrùd3|	vrù|	 d5¡sî|	 d6¡rùd7|vrùt|	ƒ|d7< d8|	v r |d t | ƒk rt | |d  ƒd1krt| |d  d1 ƒ|d9< q´d:|	v rE|d t | ƒk rEt | |d  ƒd1krEt| |d  d1 ƒ|d;< q´d7|vr‹tdd<ƒD ]9}|t | ƒk r‰t | | ƒd1kr‰| | d1  ¡ }|r‰| d5¡sz| d6¡r‰t|ƒdkr‰t|ƒ|d7<  nqQd9|vr”d|d9< d;|vrd|d;< d7|vr¦d|d7< g }
| dd=… D ]C}t |ƒd>k r¹q®|d? rÄ|d?  ¡ nd/}|rÓd@|v sÓdA|v rÕq®|
 	|t|dB ƒt|d< ƒt|dC ƒt|dD ƒdEœ¡ q®t
|
dFdG„ dHdI|dJ< t | d ƒd1kr| d d1  ¡ nd/|dK< |S )Lau  Parse monthly D/W sheet. Structure varies by month:
    Feb 2026: Row1=Deposit Gross, Row7=Deposit Net
    Jan 2026: Row1=Deposit Net(actually gross), Row7=Deposit Net(real)
    Dec/Nov 2025: Row1=Total Gross Deposit, Row3=Deposit Net
    Strategy: find ALL rows with key fields, use LAST Deposit Net as real net.
    Row 1 col B is always Gross (regardless of label).
    Nr   é   Údeposit_grossr   zDeposit NetÚdeposit_netzUS grossÚus_grosszUK grossÚuk_grosszAmount RefundedÚrefundedzUS NetÚus_netzUK NetÚuk_netzUS money outÚus_money_outzUK money outÚuk_money_outzRET Deposit CountÚret_depositszCONV Deposit CountÚconv_depositszFTDs receivedÚftdszUS leadsÚus_leadszUK leadsÚuk_leadsÚPLVÚplvÚRunrateÚrunrateÚTARGETÚtargetzUpsell CountÚupsell_countzUpsell From CONVÚ
upsell_pctzConv rate %Ú	conv_rate)z% REFUND NETz% WD/refunds NETz% WD NETÚ
refund_pcté   r	   zTotal dailyé   z	Daily NetzDaily Grossr   r   z-$Údaily_totalzUS Daily NetÚus_daily_netzUK Daily NetÚuk_daily_neté   é   é   é   ÚAgentÚTotalsé   é	   é
   )ÚusÚcountÚdepositÚrefundÚnetc                 S   s   | d S )NrV   r   )Úxr   r   r   Ú<lambda>ž   s    z%parse_monthly_sheet.<locals>.<lambda>T)ÚkeyÚreverseÚagentsÚdate)Úlenr   Ú	enumerater   Úgetr   r   Ú
startswithÚrangeÚappendÚsorted)ÚrowsÚdataÚlast_dep_netÚiÚrrY   r   Úc_valÚd_labelÚd_valr[   Úus_namer   r   r   Úparse_monthly_sheet.   s¶   €
"
€ @€

(€
(€
 ,€



û*rm   Úmonthc                 C   s>   t tddƒ}t |¡}| d¡}t |d¡}t|ƒ}t|ƒS )Nr   )Úhoursz%Y-%mr   )	r   r   r   ÚnowÚstrftimeÚMONTHLY_SHEETSr_   r*   rm   )ÚperiodÚeetrp   rY   r   rd   r   r   r   Úfetch_sheet_data¢   s   

ru   )rn   )r   r!   Úloggingr   r   r   Úurllib.requestr   Ú	getLoggerr&   r   rr   Ú	DAILY_GIDr   r   r   r*   rm   ru   r   r   r   r   Ú<module>   s&    
út