o
    ŒV'f]  ã                   @   s~   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d	d
„ ZG dd„ dƒZdS )é    )Úcreate_engineÚfunc)Úsessionmaker)ÚIntegrityError)Ú
Otteludata)Úcurrent_app)ÚConfig)Úvuoropari_int_to_str)Újakso_into_to_strc                   C   s$   dt jvrttjƒt jd< t jd S )NÚdb)r   ÚconfigÚDatabaser   ÚSQLALCHEMY_DATABASE_URI© r   r   ú3/var/www/html/tulostaulu.pesapallolive.fi/app/db.pyÚget_db   s   

r   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )r   c                 C   s&   t |dd| _t| jd}|ƒ | _d S )NT)Úecho)Úbind)r   Úenginer   Úsession)ÚselfÚdatabase_uriÚSessionr   r   r   Ú__init__   s   zDatabase.__init__c                 C   s   | j  t¡ ¡ }|S ©N)r   Úqueryr   Úall)r   Úmatchesr   r   r   Úlist_matches   s   zDatabase.list_matchesc                 C   s$   | j  t¡j|d ¡ }|r|S dS )N©ÚottelunumeroF)r   r   r   Ú	filter_byÚfirst)r   r    Úottelur   r   r   Úget_match_by_ottelunumero   s   z"Database.get_match_by_ottelunumeroc                 C   sB   | j  t tj¡¡ ¡ }t|d d}| j  |¡ | j  ¡  |jS )Né   r   )	r   r   r   Úmaxr   r    ÚscalarÚaddÚcommit)r   Úmax_ottelunumeror#   r   r   r   Úuusi_ottelu"   s
   
zDatabase.uusi_otteluc                 C   s\  |   |¡}|r,d|v r|d |_d|v r|d |_d|v rXd|v rX|d dkr8t||d t||d ƒd ƒ n |d dkrXtt||d ƒƒdkrXt||d t||d ƒd ƒ d|v rû|d d	krot|jƒd
k ro|jd |_|d dkrxd|_|d dkr˜|jdkr˜|jd |_t	|jƒ|_
d|_t|jƒ|_|d dkr¸|jdk r¸|jd |_t	|jƒ|_
d|_t|jƒ|_|d dkrÔ|jdkrÔ|jd |_t|jƒ|_|  |¡ |d dkrð|jdk rð|jd |_t|jƒ|_|  |¡ |d dkrû|  |¡ zd| j_| j ¡  | j ¡  | j ¡  W dS  ty+   | j ¡  | j ¡  | j ¡  Y dS w dS )NÚkotijoukkueÚvierasjoukkueÚupdate_valueÚactionÚlisaar%   Úvahennar   Ú
lisaa_paloé   ÚXÚpoista_palotÚ Újakso_taakseÚjakso_eteenpainé   Úvuoropari_taakseÚvuoropari_eteenpainé   Úvaihda_lyontivuoroFT)r$   r,   r-   ÚsetattrÚgetattrÚintÚlenÚpalotÚ	jakso_nror
   Ú	jakso_txtÚvuoropari_nror	   Úvuoropari_txtr=   r   r   r   r)   ÚcloseÚdisposer   Úrollback)r   r    Úparamsr#   r   r   r   Úupdate_match)   sn   


 












üzDatabase.update_matchc                 C   s,   |r|j |jkr|j|_ d S |j|_ d S d S r   )Únykyinen_lyontivuoror,   r-   )r   r#   r   r   r   r=   k   s
   üzDatabase.vaihda_lyontivuoroN)	Ú__name__Ú
__module__Ú__qualname__r   r   r$   r+   rK   r=   r   r   r   r   r      s    Br   N)Ú
sqlalchemyr   r   Úsqlalchemy.ormr   Úsqlalchemy.excr   Ú
app.modelsr   Úflaskr   r   r   Úapp.functionsr	   r
   r   r   r   r   r   r   Ú<module>   s   