
    g                     X    d dl mZmZ d dlmZ d Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )    )requestjsonify)get_db_connectionc            	      d   t           j        } |                     d          }|                     d          }|                     d          }|                     dd          }|                     dd          }|                     dd	          }|r|st          d
di          dfS 	 t	                      }|                                }|                    d|f           |                                d         }	|	dk    rt          d
di          dfS |                    d||||||f           |                                 |	                                 |	                                 t          ddi          S # t          $ r*}
t          d
t          |
          i          dfcY d }
~
S d }
~
ww xY w)Nuser_idnamedescriptionsymbolnonecolorz#3b82f6decimal_places   errorzMissing user_id or name  z2SELECT COUNT(*) FROM user_stats WHERE user_id = %sr      z#Stat limit reached (max 5 per user)i  z
            INSERT INTO user_stats (user_id, name, description, symbol, color, decimal_places)
            VALUES (%s, %s, %s, %s, %s, %s)
        messagezUser stat created successfully  r   jsongetr   r   cursorexecutefetchonecommitclose	Exceptionstr)datar   r   r	   r
   r   r   connr   countes              7/var/www/wisegym.app/api/functions/user_stat_service.pycreate_user_statr#      s   <Dhhy!!G88FD((=))KXXh''FHHWi((EXX.22N B$ B!:;<<cAA/ "" 	KgZXXX!!!$A::G%JKLLcQQ  t[&%H	J 	J 	J
 	

	#CDEEE / / /Q())3......./s&   &A+E; A(E; ;
F/F*$F/*F/c                     t           j                            d          } | st          ddi          dfS 	 t	                      }|                    d          }|                    d| f           |                                }|                                 |                                 t          |          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)	Nr   r   zMissing user_idr   T
dictionaryz+SELECT * FROM user_stats WHERE user_id = %sr   r   argsr   r   r   r   r   fetchallr   r   r   )r   r   r   statsr!   s        r"   get_user_statsr+   &   s    ly))G :!2344c99	/ ""--DwjQQQ!!

u~~ / / /Q())3......./   BB< <
C0C+%C0+C0c                  P   t           j        } |                     d          }|                     d          }|                     d          }|r|r|t          ddi          dfS 	 t	                      }|                                }|                    d| d||f           |                                 |                                 |                                 t          d	d
i          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)Nstat_idfieldvaluer   Missing required fieldsr   zUPDATE user_stats SET z = %s WHERE id = %sr   zUser stat updatedr   r   r   r   r   r   r   r   r   r   r   r   )r   r.   r/   r0   r   r   r!   s          r"   update_user_statr3   7   s4   <Dhhy!!GHHWEHHWE B% B5=!:;<<cAA	/ ""JJJJUT[L\]]]

	#67888 / / /Q())3......./s   &B
C1 1
D%;D D% D%c                     t           j                            d          } | st          ddi          dfS 	 t	                      }|                                }|                    d| f           |                                 |                                 |                                 t          ddi          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)	Nr.   r   zMissing stat_idr   z$DELETE FROM user_stats WHERE id = %sr   zUser stat deletedr   r2   )r.   r   r   r!   s       r"   delete_user_statr5   L   s    ly))G :!2344c99	/ ""=zJJJ

	#67888 / / /Q())3......./r,   c                  *   t           j                            d          } t           j                            d          }| r|st          ddi          dfS 	 t	                      }|                    d          }|                    d| |f           |                                }|                                 |                                 t          |          S # t          $ r*}t          dt          |          i          d	fcY d }~S d }~ww xY w)
Nr   r.   r   Missing user_id or stat_idr   Tr%   zUSELECT * FROM user_stat_entries WHERE user_id = %s AND stat_id = %s ORDER BY date ASCr   r'   )r   r.   r   r   entriesr!   s         r"   get_stat_entriesr9   ^   s)   ly))Gly))G E' E!=>??DD	/ ""--nqx  {B  qC  	D  	D  	D//##

w / / /Q())3......./s   BC 
D(DDDc                     t           j        } |                     d          }|                     d          }|                     d          }|                     d          }|r|r|t          ddi          dfS 	 t	                      }|                                }|                    d||f           |                                rt          dd	i          d
fS |                    d||||f           |                                 |	                                 |	                                 t          ddi          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)Nr   r.   r0   dater   r1   r   z
            SELECT id FROM user_stat_entries 
            WHERE user_id = %s AND stat_id = %s AND DATE(date) = CURDATE()
        z/Only one entry per day is allowed for this stati  z
            INSERT INTO user_stat_entries (user_id, stat_id, value, date)
            VALUES (%s, %s, %s, COALESCE(%s, NOW()))
        r   zStat entry addedr   r   )r   r   r.   r0   r;   r   r   r!   s           r"   add_stat_entryr<   p   s   <Dhhy!!Ghhy!!GHHWE88FD B' BU]!:;<<cAA/ "" 	  w	! 	! 	!
 ?? 	^G%VWXXZ]]]  wt,	. 	. 	.
 	

	#56777 / / /Q())3......./s&   ;A E A&E 
E7E2,E72E7c                  x   t           j        } |                     d          }|                     d          }|                     d          }|st          ddi          dfS 	 t	                      }|                                }||                    d||f           |r|                    d||f           |                                 |                                 |                                 t          d	d
i          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)Nentry_idr0   r;   r   Missing entry_idr   z5UPDATE user_stat_entries SET value = %s WHERE id = %sz4UPDATE user_stat_entries SET date = %s WHERE id = %sr   zEntry updatedr   r2   )r   r>   r0   r;   r   r   r!   s          r"   update_stat_entryr@      sG   <Dxx
##HHHWE88FD ;!3455s::/ ""NNRUZ\dTefff 	eNNQTXZbScddd

	?3444 / / /Q())3......./s   "B"D 
D9D4.D94D9c                     t           j                            d          } | st          ddi          dfS 	 t	                      }|                                }|                    d| f           |                                 |                                 |                                 t          ddi          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)	Nr>   r   r?   r   z+DELETE FROM user_stat_entries WHERE id = %sr   zEntry deletedr   r2   )r>   r   r   r!   s       r"   delete_stat_entryrB      s    |
++H ;!3455s::	/ ""DxkRRR

	?3444 / / /Q())3......./r,   c                  .   t           j                            d          } t           j                            d          }| r|st          ddi          dfS 	 t	                      }|                    d          }|                    d| |f           |                                }|                                 |                                 t          |pi           S # t          $ r*}t          dt          |          i          d	fcY d }~S d }~ww xY w)
Nr   r.   r   r7   r   Tr%   z
            SELECT * FROM user_stat_entries
            WHERE user_id = %s AND stat_id = %s
            ORDER BY date DESC LIMIT 1
        r   )r   r(   r   r   r   r   r   r   r   r   r   )r   r.   r   r   entryr!   s         r"   get_latest_stat_entryrE      s'   ly))Gly))G E' E!=>??DD/ ""--  w		! 	! 	!
 !!

u{### / / /Q())3......./s   BC   
D*D	DDN)flaskr   r   	db_configr   r#   r+   r3   r5   r9   r<   r@   rB   rE        r"   <module>rJ      s    " " " " " " " " ' ' ' ' ' ' /  /  /D/ / /"/ / /*/ / /$/ / /$!/ !/ !/F/ / /0/ / / / / / / /rI   