
    U+i              
           d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZ d dlmZ d dlmZ  edd	g
      Zej)                  d       e        ee       ee      fdedede	fd       Zej-                  d       ee       ee      fdede	fd       Zej-                  d       ee       ee      fdede	fd       Zej)                  d       ee       ee      fdedede	fd       Zej-                  d       ee       ee      fdedede	fd       Zej7                  d       ee       ee      fdededede	fd       Zej;                  d       ee       ee      fdedede	fd       Zy)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)	EventList
StoreEventUpdateEvent	UserLogin)
EventClass)get_current_active_userz/eventsEvents)prefixtags/
event_listsession_userdbc                    | j                   | j                   nd}| j                  r| j                  nd}t        |      j                  ||      }t	        |t
              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d d	      S t        t        j                  d
d|d	      S )Nr   
   r   error  messageErrorr   r   datastatus_codecontent   zEvents retrieved successfully)pageper_pager   get_all
isinstancedictgetr   r   HTTP_404_NOT_FOUNDHTTP_200_OK)r   r   r   r"   r#   results         B/var/www/pie360backend.cl/public_html/app/backend/routes/events.pyindexr,      s     )oo9:??qD&0&9&9z""rH^##D(3F&$FJJx$8G$C11!::i9
 	
 &&6
     z/listc                    t        |      j                  dd       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d	      S t        t        j                  d
d|d	      S )Nr   )r"   items_per_pager   r   r   r   zError retrieving eventsr   r   r!   z"Events list retrieved successfully)	r   r$   r%   r&   r'   r   r   r(   r)   r   r   r*   s      r+   list_events_getr1   (   s    ^##4#@F&$FJJx$8G$C11!::i1JK
 	
 &&;
 r-   z/allc                    t        |      j                         }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      dd      S t        t        j                  d	d
|d      S )z
    Obtiene todos los eventos agrupados por mes.
    Retorna un objeto donde cada clave es 'YYYY-MM' y contiene una lista de eventos de ese mes.
    r   r     r   z Error retrieving events by monthNr   r   r!   z.Events retrieved successfully grouped by month)	r   get_all_by_monthr%   r&   r'   r   r   HTTP_500_INTERNAL_SERVER_ERRORr)   r0   s      r+   get_all_events_by_monthr6   ?   s     ^,,.F&$FJJx$8G$C==!::i1ST
 	
 &&G
 r-   z/storeeventc           	      \   | j                         }t        |      j                  |      }t        |t               rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d      S t        t        j                  dd	d
|j	                  d
      id      S )Nr   r   r3   r   zError creating eventr   r      zEvent created successfullyid)	r&   r   storer%   r'   r   r   r5   HTTP_201_CREATED)r7   r   r   event_inputsr*   s        r+   r;   r;   Z   s    ::<L^!!,/F&$FJJx$8G$C==!::i1GH
 	
 ++36::d+,
 r-   z/{id}r:   c                    t        |      j                  |       }t        |t              rC|j                  d      dk(  r/t	        t
        j                  d|j                  dd      d d      S t	        t
        j                  dd	|d      S )
Nr   r   r   r   zEvent not foundr   r   r!   zEvent retrieved successfully)r   r'   r%   r&   r   r   r(   r)   r:   r   r   r*   s       r+   r'   r'   r   s    ^#F&$FJJx$8G$C11!::i1BC
 	
 &&5
 r-   c           	      b   |j                  d      }t        |      j                  | |      }t        |t               rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d	      S t        t        j                  d
dd|j	                  d      id	      S )NT)exclude_unsetr   r   r   r   zError updating eventr   r   r!   zEvent updated successfullyr:   )	r&   r   updater%   r'   r   r   r(   r)   )r:   r7   r   r   r=   r*   s         r+   rB   rB      s    ::D:1L^""2|4F&$FJJx$8G$C11!::i1GH
 	
 &&36::d+,
 r-   c                    t        |      j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d      S t        t        j                  dd	d d      S )
Nr   r   r   r   zError deleting eventr   r   r!   zEvent deleted successfully)	r   deleter%   r&   r'   r   r   r(   r)   r?   s       r+   rD   rD      s    ^""2&F&$FJJx$8G$C11!::i1GH
 	
 &&3
 r-   N)fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   app.backend.classes.event_classr   app.backend.auth.auth_userr   eventspostr,   r'   r1   r6   r;   intputrB   rD    r-   r+   <module>rQ      s&   . . * * " M M 6 >	


 S"++QhIi  zA  BH  zI i Y ov  2 G.56M.N^efl^m ) T[  , F6=>U6Vfmntfu ) \c  4 X7>?V7Wgnougv  9 ]d  . G+23J+K[bci[j C y QX  , GBIJaBbry  {A  sB s ; i ho  . w.56M.N^efl^m s ) T[  r-   