
    ji`              
          S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJr  S SKJr  S SKJr  \" SS	/S
9r\R)                  S5      \" 5       \" \5      \" \5      4S\S\S\	4S jj5       r\R-                  S5      \" \5      \" \5      4S\S\	4S jj5       r\R-                  S5      \" \5      \" \5      4S\S\	4S jj5       r\R)                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R-                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R7                  S5      \" \5      \" \5      4S\S\S\S\	4S jj5       r\R;                  S5      \" \5      \" \5      4S\S\S\	4S jj5       rg)    )	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                    U R                   b  U R                   OSnU R                  (       a  U R                  OSn[        U5      R                  X45      n[	        U[
        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S.S	9$ [        [        R                  S
SUS.S	9$ )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         LC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\events.pyindexr,      s     )oo9:??qD&0&9&9z""rH^##D3F&$FJJx$8G$C11!::i9
 	
 &&6
     z/listc                    [        U5      R                  SS S9n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S	9$ [        [        R                  S
SUS.S	9$ )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                    [        U5      R                  5       n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS.S9$ [        [        R                  S	S
US.S9$ )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           	      \   U R                  5       n[        U5      R                  U5      n[        U[         5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S9$ [        [        R                  SS	S
UR	                  S
5      0S.S9$ )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                    [        U5      R                  U 5      n[        U[        5      (       aA  UR                  S5      S:X  a,  [	        [
        R                  SUR                  SS5      S S.S9$ [	        [
        R                  SS	US.S9$ )
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           	      Z   UR                  SS9n[        U5      R                  X5      n[        U[         5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S	9$ [        [        R                  S
SSUR	                  S5      0S.S	9$ )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                    [        U5      R                  U 5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S9$ [        [        R                  SS	S S.S9$ )
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-   