
    pfv                         d dl mZ d dlZd dlmZ d dlmZ d dlmZmZ dZ	defdZ
d	Zded
efdZdZdZded
efdZdZd Zej$                  dej&                  eiZ G d d      Zy)    )DictN)pool)	db_config)GameTypeGameCategoryz: select c.* from fo_customer c 
where c.customer_pk = %s;
itemc           	      H    | d   | d   | d   | d   | d   | d   | d   | d   d	S )
Nr               	         )idloginemailreg_confirmblockedvalidwithdraw_allowedc_date r   s    ,/var/www/apps/qwin_bot/db/qwin_casino_dao.pycustomer_fetcherr      sD    1gaaAw7a Hr(	 	    ac   select b.*,
(select sum(cg.staked) from casino_game cg 
where cg.is_closed = true and cg.tournament_id is null and 
cg.customer_acc_fk = b.customer_acc_fk and cg.staked < 100000 and cg.c_date > b.c_date)
from fo_customer_bonus b
inner join fo_customer_account ca on ca.customer_acc_pk = b.customer_acc_fk
where ca.customer_fk = %s and b.is_active = true
returnc                    dj                  t        | d         t        z        | d   | d   | d   | d   | d   | d   | d	   t        | d
         dj                  t        | d         | d   z  t        | d
         z
  t        z        d
S )N{:.2f}   r         r   r   r   r   r   )
bonus_amount
bonus_typewager_factor
win_factor
bonus_codebonus_confirmedbonus_activeconfirm_dateplayer_stakedto_stake)formatfloatQWIN_B_RATEto_qwinbr   s    r   active_bonus_fetcherr2   "   s     d1g(DE1gQ1g1g7QR b*OOU47^d1g%=d2h%OS^$^_ r   zselect cg.*, cdg.*
from casino_game cg
inner join {} cdg on cdg.game_pk = cg.game_pk
inner join fo_customer_account ca on ca.customer_acc_pk = cg.customer_acc_fk
where ca.customer_fk = %s and cg.game_type_fk = %s
order by cg.c_date desc limit 1;
zselect cg.*, cdg.*
from casino_game cg
inner join {} cdg on cdg.game_pk = cg.game_pk
inner join fo_customer_account ca on ca.customer_acc_pk = cg.customer_acc_fk
where ca.customer_fk = %s and cg.game_pk = %s limit 1;
c                 ~   i d| d   d| d   d| d   d| d   d	t        | d
         dt        | d         dt        | d         dt        | d         d| d   d| d   d| d   d| d   d| d   d| d   d| d   dt        | d         | d   | d   z  z  d t        j                  | d!         d    d"| d#   iS )$Nr   r   game_type_id   user_idr
   currency_idr"   start_balancer#   end_balancer   stakedr   returnedr   finished
   closedr   r      f_date   
free_spins   lines   coins_per_line   
coin_valuestates   	config_id   )r1   jsonloadsr   s    r   slot_fetcherrO   @   sa   $q'DG tAw 47	
 Xd1g. 8DG, htAw' a) R d2h d2h d2h $r( T"X d2h  (47+tBx$r(/BC!" djjb*84#$ b% r   g     @c                 D    dj                  t        |       t        z        S )Nr    )r.   r/   r0   )values    r   r1   r1   X   s    ??5<+566r   c                   T    e Zd Zd ZdefdZd ZdedededefdZ	dedede
defd	Zy
)QwinCasinoDaoc                     t               | _        | j                  d   }t        j                  t	        | j                  d   d         t	        | j                  d   d         fi || _        y )N
postgresqlr   minmax)r   configr   SimpleConnectionPoolint)selfconnection_paramss     r   __init__zQwinCasinoDao.__init__d   sa    k KK5--c$++f2Ee2L.M.1$++f2Ee2L.MC0AC	r   r6   c                 .   | j                   j                         }|j                         }|j                  t        t        |      f       |j                         }|j                          | j                   j                  |       |rt        |d         S y Nr   )
r   getconncursorexecuteCUSTOMER_SQLrZ   fetchallcloseputconnr   r[   r6   
connectionra   results        r   get_customerzQwinCasinoDao.get_customerl   ss    YY&&(
""$|c'l%56"		*%#F1I..r   c                 .   | j                   j                         }|j                         }|j                  t        t        |      f       |j                         }|j                          | j                   j                  |       |rt        |d         S y r_   )
r   r`   ra   rb   CUSTOMER_ACTVE_BONUS_SQLrZ   rd   re   rf   r2   rg   s        r   get_customer_active_bonusz'QwinCasinoDao.get_customer_active_bonusz   st    YY&&(
""$/#g,1AB"		*%'q	22r   game_id	game_typer   c                    |j                   }t        j                  |j                        }| j                  j                         }|j                         }|j                  |t        |      |j                  f       |j                         }|j                          | j                  j                  |       t        |       t        |   }	|D 
cg c]
  }
 |	|
       c}
S c c}
w N)categoryLAST_GAME_SQLr.   tabler   r`   ra   rb   rZ   r   rd   re   rf   printfetchers)r[   r6   rn   ro   game_category	sql_queryrh   ra   ri   fetcherr   s              r   get_last_gamezQwinCasinoDao.get_last_game   s    !**!(()<)<=	YY&&(
""$y3w<">?"		*%f=)*01$111s   C"c                    |j                   }t        j                  |j                        }| j                  j                         }|j                         }|j                  |t        |      |f       |j                         }|j                          | j                  j                  |       t        |       t        |   }	|D 
cg c]
  }
 |	|
       c}
S c c}
w rq   )rr   GAME_SQLr.   rt   r   r`   ra   rb   rZ   rd   re   rf   ru   rv   )r[   r6   ro   rn   rw   rx   rh   ra   ri   ry   r   s              r   get_gamezQwinCasinoDao.get_game   s    !**OOM$7$78	YY&&(
""$y3w<"9:"		*%f=)*01$111s   CN)__name__
__module____qualname__r]   strrj   rm   r   r   rz   rZ   r}   r   r   r   rS   rS   a   s\    CC 2S 23 28 2PT 2$2 2 23 24 2r   rS   )typingr   rM   psycopg2r   r   qwin_chat_bot_domainr   r   rc   r   rl   r2   rs   r|   rO   r0   r1   	BLACKJACKSLOTrv   rS   r   r   r   <module>r      s        7
4 
 t  t  , 7
 D|
I2 I2r   