
    Vg                     D    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	S )
    )requestjsonify)get_db_connection
   c                  X   	 t           j                            d          } | st          ddi          dfS t	                      }|                    d          }|                    d| f           |                                }|D ]6}|                    d|d	         f           |                                |d
<   7|                                 |                                 t          |          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)Nuser_iderrorzMissing user_id  T)
dictionaryz)SELECT * FROM workouts WHERE user_id = %sz
                SELECT we.*, e.name AS exercise_name
                FROM workout_exercises we
                JOIN exercises e ON we.exercise_id = e.id
                WHERE we.workout_id = %s
                ORDER BY we.order_index ASC
            id	exercises  )r   argsgetr   r   cursorexecutefetchallclose	Exceptionstr)r   connr   workoutsworkoutes         5/var/www/wisegym.app/api/functions/workout_service.pyget_workouts_by_userr      sD   /,""9-- 	>G%6788#== ""--BWJOOO??$$ 	5 	5GNN  $-!# # # $*??#4#4GK  

x    / / /Q())3......./s#   3C5 B>C5 5
D)?D$D)$D)c                  :   	 t           j        } |                     d          }|                     d          }|                     dd          }|r|st          ddi          dfS t	                      }|                                }|                    d|f           |                                d	         }|t          k    r;|	                                 |	                                 t          dd
i          dfS |                    d|||f           |
                                 |	                                 |	                                 t          ddi          dfS # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)Nr   titlerecovery_time<   r	   zMissing user_id or titler
   z0SELECT COUNT(*) FROM workouts WHERE user_id = %sr   zWorkout limit reached (10 max)i  zHINSERT INTO workouts (user_id, title, recovery_time) VALUES (%s, %s, %s)statuszWorkout created   r   )r   jsonr   r   r   r   r   fetchoneMAX_WORKOUTS_PER_USERr   commitr   r   )datar   r   r   r   r   countr   s           r   create_workoutr)   "   s   /|((9%%!!"55 	Ge 	GG%?@AA3FF ""IG:VVV!!!$)))LLNNNJJLLLG%EFGGLLadkmr  uB  dC  	D  	D  	D

"3455s:: / / /Q())3......./s,   A"E& %BE& >A'E& &
F0FFF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)	N
workout_idr	   zMissing workout_idr
   z"DELETE FROM workouts WHERE id = %sr!   zWorkout deletedr   r   r#   r   r   r   r   r   r&   r   r   r   )r'   r+   r   r   r   s        r   delete_workoutr-   >   s    /|XXl++
 	AG%9:;;S@@ "";j]KKK

"34555 / / /Q())3......./s#   5B> BB> >
C2C-'C2-C2c            	      b   	 t           j        } |                     d          }|rt          rt          st          ddi          dfS t                      }|                                }|dk    r|                     dd          }|                     dd	          }|                     d
d          }|                     dd          }|                    dt          t          ||||f           n<|dk    r#|                    dt          t          f           nt          ddi          dfS |	                                 |
                                 |
                                 t          dd| di          S # t          $ r*}t          dt          |          i          dfcY d }~S d }~ww xY w)Nactionr	   Missing fieldsr
   addsets   repsr   weightg        order_indexr   z
                INSERT INTO workout_exercises (workout_id, exercise_id, sets, reps, weight, order_index)
                VALUES (%s, %s, %s, %s, %s, %s)
            removezHDELETE FROM workout_exercises WHERE workout_id = %s AND exercise_id = %szInvalid actionr!   z	Exercise zed successfullyr   )r   r#   r   r+   exercise_idr   r   r   r   r&   r   r   r   )	r'   r/   r   r   r2   r4   r5   r6   r   s	            r   modify_workout_exerciser9   O   s   /|(## 	=Z 	={ 	=G%5677<< ""U??88FA&&D88FB''DXXh,,F((=!44KNN  k4v{KM M M M xNNegqs~f  A  A  A  AG%5677<<

"Ef"E"E"EFGGG / / /Q())3......./s,   AE: C"E: )AE: :
F.F)#F.)F.c                  ~   	 t           j        } |                     d          }|                     d          }|                     d          }|r|r|t          ddi          dfS |dv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)Nr+   fieldvaluer	   r0   r
   )r   r   zInvalid fieldzUPDATE workouts SET z = %s WHERE id = %sr!   zWorkout updatedr   r,   )r'   r+   r;   r<   r   r   r   s          r   update_workout_fieldr=   o   sV   /|XXl++
!!!! 	= 	=%-G%5677<<222G_566;; ""HeHHH5R\J]^^^

"34555 / / /Q())3......./s+   A#D &D =B
D 
D<D71D<7D<N)flaskr   r   	db_configr   r%   r   r)   r-   r9   r=        r   <module>rB      s    " " " " " " " " ' ' ' ' ' ' / / /8/ / /8/ / /"/ / /@/ / / / /rA   