o
    izBhf/                     @   sF   d dl mZ ddlZddlmZ ddlmZ ddlZG dd dZdS )   )User    N)generate_password_hash)datetimec                   @   s   e Zd ZdddddZedd Zedd	 Zed
d Zedd Zedd Z	edd Z
edd Zedd Zedd Zedd Zedd ZdS )	ModelUserz	127.0.0.1sebap2PApV7b0bLkzLLxQ0ZNspxButterfly)hostuserpassworddatabasec                 C   s   t jjdi | jS )N )mysql	connectorconnect	db_config)clsr   r   0/var/www/html/spxbutterflies/models/ModelUser.py_connect   s   zModelUser._connectc                 C   sx   |   }| r:| }d}|||jf | }|d ur8t|d |d t|d |j|d |d d}|S d S d S )NzOSELECT id, username, password, fullname, userPlan FROM user WHERE username = %sr   r            )fullnameuserPlan)	r   is_connectedcursorexecuteusernamefetchoner   check_passwordr   )r   dbr   
connectionr   sqlrowr   r   r   login   s   
zModelUser.loginc                 C   s4  |   }| r|jdd}d}|||f | }|d urtd4i d|d d|d dd d|d d|d d	|d	 d
|d
 d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d|d d |d  d!|d! d"|d" d#|d# d$|d$ d%|d% d&|d& d'|d' d(|d( d)|d) d*|d* d+|d+ d,|d, d-|d- d.|d. d/|d/ d0|d0 d1|d1 d2|d2 d3|d3 }|S d S d S )5NT)
dictionaryz SELECT * FROM user WHERE id = %sidr   r   r   takeProfit1_PercenstopLoss1_PercentakeProfit2_PercenstopLoss2_PercentakeProfit3_PercenstopLoss3_PercentakeProfit4_PercenstopLoss4_PercentakeProfit5_PercenstopLoss5_PercentakeProfit6_PercenstopLoss6_PercentakeProfit7_PercenstopLoss7_PercentakeProfit8_PercenstopLoss8_PercentakeProfit9_PercenstopLoss9_PercentakeProfit10_PercenstopLoss10_PercentakeProfit1_DollarstopLoss1_DollartakeProfit2_DollarstopLoss2_DollartakeProfit3_DollarstopLoss3_DollartakeProfit4_DollarstopLoss4_DollartakeProfit5_DollarstopLoss5_DollartakeProfit6_DollarstopLoss6_DollartakeProfit7_DollarstopLoss7_DollartakeProfit8_DollarstopLoss8_DollartakeProfit9_DollarstopLoss9_DollartakeProfit10_DollarstopLoss10_Dollaroffset	contractsr   start_trialr   )r   r   r   r   r   r   )r   r!   r'   r"   r   r#   r$   logged_userr   r   r   	get_by_id#   s   

	
 !"#$%&'()*+,-01235zModelUser.get_by_idc                 C   sL   t |}|  }| r$| }d}	||||f}
||	|
 |  d S d S )NzQINSERT INTO user (username, password, fullname, userPlan) VALUES (%s, %s, %s, %s))r   r   r   r   r   commit)r   r!   r   r   namer   hashed_passwordr"   r   r#   valuesr   r   r   createj   s   zModelUser.createc                 C   s  |   }| r| }d}g |d |d |d |d |d |d |d |d	 |d
 |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d |d  |d! |d" |d# |d$ |d% |d& |d' |d( |d) |d* |d+ |R }||| |  d S d S ),Na  
                UPDATE user SET 
                    takeProfit1_Percen = %s, stopLoss1_Percen = %s,
                    takeProfit2_Percen = %s, stopLoss2_Percen = %s,
                    takeProfit3_Percen = %s, stopLoss3_Percen = %s,
                    takeProfit4_Percen = %s, stopLoss4_Percen = %s,
                    takeProfit5_Percen = %s, stopLoss5_Percen = %s,
                    takeProfit6_Percen = %s, stopLoss6_Percen = %s,
                    takeProfit7_Percen = %s, stopLoss7_Percen = %s,
                    takeProfit8_Percen = %s, stopLoss8_Percen = %s,
                    takeProfit9_Percen = %s, stopLoss9_Percen = %s,
                    takeProfit10_Percen = %s, stopLoss10_Percen = %s,

                    takeProfit1_Dollar = %s, stopLoss1_Dollar = %s,
                    takeProfit2_Dollar = %s, stopLoss2_Dollar = %s,
                    takeProfit3_Dollar = %s, stopLoss3_Dollar = %s,
                    takeProfit4_Dollar = %s, stopLoss4_Dollar = %s,
                    takeProfit5_Dollar = %s, stopLoss5_Dollar = %s,
                    takeProfit6_Dollar = %s, stopLoss6_Dollar = %s,
                    takeProfit7_Dollar = %s, stopLoss7_Dollar = %s,
                    takeProfit8_Dollar = %s, stopLoss8_Dollar = %s,
                    takeProfit9_Dollar = %s, stopLoss9_Dollar = %s,
                    takeProfit10_Dollar = %s, stopLoss10_Dollar = %s,

                    contracts = %s, offset = %s
                WHERE id = %s
            r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rQ   rP   )r   r   r   r   rU   )r   r!   datar'   r"   r   r#   rX   r   r   r   saveDatau   s   		

zModelUser.saveDatac           	   
   C   s   z*|   }| r(| }d}||f}||| |  |  |  W dS W dS  tyB } ztd| W Y d }~dS d }~ww )NzEUPDATE user SET userPlan = 99, idTransaction = %s WHERE username = %sTError:F)r   r   r   r   rU   close	Exceptionprint)	r   r!   r   transactionIDr"   r   r#   rX   er   r   r   saveDataVIP   s$   zModelUser.saveDataVIPc           	   
   C   s   z.|   }| r,| }t }d}||f}||| |  |  |  W dS W dS  tyF } zt	d| W Y d }~dS d }~ww )NzCUPDATE user SET userPlan = 98, start_trial = %s WHERE username = %sTr\   F)
r   r   r   r   nowr   rU   r]   r^   r_   )	r   r!   r   r"   r   current_timer#   rX   ra   r   r   r   saveDataVIP_validatedEmail   s&   z$ModelUser.saveDataVIP_validatedEmailc                 C   F   |   }| r!| }d}|||f | }|d }|dkS dS )Nz-SELECT COUNT(*) FROM user WHERE username = %sr   Fr   r   r   r   r   )r   r!   r   r"   r   r#   r$   
user_countr   r   r   check_user_exists      zModelUser.check_user_existsc                 C   sP   |   }| r&| }d}||f}||| |  |  |  dS dS )Nz.UPDATE user SET token = %s WHERE username = %sTF)r   r   r   r   rU   r]   )r   r!   r   tokenr"   r   r#   rX   r   r   r   	saveToken   s   zModelUser.saveTokenc                 C   rf   )Nz*SELECT COUNT(*) FROM user WHERE token = %sr   Frg   )r   r!   rk   r"   r   r#   r$   token_countr   r   r   token_exists   rj   zModelUser.token_existsc           	   
   C   s   |   }t|}| rX| }z>zd}||||f |  W W |  |  dS  tyN } ztd|  W Y d }~W |  |  dS d }~ww |  |  w dS )Nz.UPDATE user SET password = %s WHERE token = %sTzError resetting password: F)	r   r   r   r   r   rU   r]   r^   r_   )	r   r!   rk   new_passwordr"   rW   r   r#   ra   r   r   r   reset_password   s*   
zModelUser.reset_passwordN)__name__
__module____qualname__r   classmethodr   r%   rT   rY   r[   rb   re   ri   rl   rn   rp   r   r   r   r   r      s8    


F


;




r   )	entities.Userr   mysql.connectorr   werkzeug.securityr   r   timer   r   r   r   r   <module>   s    