
    Wg                     J    d dl mZmZ d dlmZ d dlmZmZ d Zd Zd Z	d Z
dS )	    )requestjsonify)get_db_connection)datetime	timedeltac                     	 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)	Nuser_iderrorzMissing user_id  T
dictionaryz
            SELECT c.id, c.date_time, c.comment, w.title AS workout_title
            FROM calendars c
            JOIN workouts w ON c.workout_id = w.id
            WHERE c.user_id = %s
            ORDER BY c.date_time ASC
          r   argsgetr   r   cursorexecutefetchallclose	Exceptionstr)r	   connr   entrieses        6/var/www/wisegym.app/api/functions/calendar_service.pyget_calendar_by_userr      s   /,""9-- 	>G%6788#== ""--  Z	 	 	 //##

w / / /Q())3......./s#   3B< BB< <
C0C+%C0+C0c                  @   	 t           j                            d          } t           j                            d          }| r|st          ddi          dfS | d}| d}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	   dater
   zMissing user_id or dater   z	 00:00:00z	 23:59:59Tr   a  
            SELECT c.id, c.date_time, c.comment, w.title AS workout_title
            FROM calendars c
            JOIN workouts w ON c.workout_id = w.id
            WHERE c.user_id = %s AND c.date_time BETWEEN %s AND %s
            ORDER BY c.date_time ASC
        r   r   )r	   r   	day_startday_endr   r   resultsr   s           r   get_calendar_for_dayr"      sA   /,""9--|'' 	Fd 	FG%>?@@#EE&&&	$$$ ""--  y'*	, 	, 	, //##

w / / /Q())3......./s%   AC) BC) )
D3DDDc            	      
   	 t           j        } |                     d          }|                     d          }|                     d          }|                     d          }|                     d          }|r|r|st          ddi          dfS t	          j        |          }t                      }|                                }t          t                    D ]}	|}
|d	k    r|t          |	
          z   }
nY|dk    r|t          |	          z   }
n?|dk    r9|                    |j        |	z   dk    r
|j        |	z   n|j        |	z   dz
            }
|                    d|||
                    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	   
workout_id	date_timecomment
recurrencer
   z(Missing user_id, workout_id or date_timer   daily)daysweekly)weeksmonthly   )monthz
                INSERT INTO calendars (user_id, workout_id, date_time, comment)
                VALUES (%s, %s, %s, %s)
            z%Y-%m-%d %H:%M:%SstatuszWorkout(s) scheduled   r   )r   jsonr   r   r   fromisoformatr   r   rangerepeat_countr   replacer.   r   strftimecommitr   r   r   )datar	   r$   r%   r&   r'   	base_dater   r   irepeat_dater   s               r   add_calendar_entryr<   5   sV   #/|((9%%XXl++
HH[))	((9%%XXl++
 	Wj 	W	 	WG%OPQQSVVV*955	 ""|$$ 	\ 	\A#KW$$')*;*;*;;x''')!*<*<*<<y(('//Y__`M`dfMfMfio6I6Imvm|  @A  nA  DF  nF/  H  HNN  :{';';<O'P'PRYZ\ \ \ \
 	

"89::C?? / / /Q())3......./s%   BG D=G 
HG=7H=H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calendar_idr
   zMissing calendar_idr   z#DELETE FROM calendars WHERE id = %sr/   zCalendar entry deletedr   )r   r1   r   r   r   r   r   r7   r   r   r   )r8   r>   r   r   r   s        r   delete_calendar_entryr?   [   s    /|hh}-- 	BG%:;<<cAA ""<{nMMM

":;<<< / / /Q())3......./s#   5B> BB> >
C2C-'C2-C2N)flaskr   r   	db_configr   r   r   r   r"   r<   r?        r   <module>rD      s    " " " " " " " " ' ' ' ' ' ' ( ( ( ( ( ( ( (/ / /,/ / /4$/ $/ $/L/ / / / /rC   