
    EgEi              
          d Z ddlmZmZmZ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 ddlmZmZmZ ddlmZ dd	lmZmZ dd
lZdd
lZ e       Zej9                  dee         d
 ee       ee      fdee   dede	fd       Zej?                  de       ee       ee      fdedede	fd       Z ej9                  de       ee       ee      fde!dede	fd       Z"ejG                  de       ee       ee      fde!dedede	fd       Z$ej?                  d       ed       ee       ee      fde!dedede	fd       Z%ejM                  d       ee       ee      fde!dede	fd       Z'y
)u2   
Endpoints admin pour la gestion des événements
    )	APIRouterDependsHTTPExceptionstatus
UploadFileFile)Session)get_db)User)Event)EventCreateEventUpdateEventResponse)get_current_admin)ListOptionalN/)response_model	is_publiccurrent_admindbc                    K   |j                  t              }| "|j                  t        j                  | k(        }|j	                  t        j
                  j                               j                         }|S w)u(   
    Liste de tous les événements
    )queryr   filterr   order_bydatedescall)r   r   r   r   eventss        I/home/www/lebenam.kofcorporation.com/app/api/v1/endpoints/admin/events.py
get_eventsr!      sY      HHUOEU__	9:^^EJJOO-.224FMs   A7A9
event_datac                    K   t        di | j                         }|j                  |       |j                          |j	                  |       |S w)u+   
    Création d'un nouvel événement
     )r   dictaddcommitrefresh)r"   r   r   	new_events       r    create_eventr*   #   sC      *
)*IFF9IIKJJys   AAz/{event_id}event_idc                    K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |S w)u#   
    Détails d'un événement
       Événement non trouvéstatus_codedetail)r   r   r   idfirstr   r   HTTP_404_NOT_FOUNDr+   r   r   events       r    	get_eventr6   4   sU      HHUO""588x#78>>@E11,
 	

 Ls   A#A%c                 ~  K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |j                  d      }|j                         D ]  \  }}t        |||        |j                          |j                  |       |S w)u'   
    Mise à jour d'un événement
    r-   r.   T)exclude_unset)r   r   r   r1   r2   r   r   r3   r%   itemssetattrr'   r(   )r+   r"   r   r   r5   update_datafieldvalues           r    update_eventr>   G   s      HHUO""588x#78>>@E11,
 	

 ///5K#))+ %uue$% IIKJJuLs   B;B=z/{event_id}/photo.photoc                   K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |j                  j                  d      st        t        j                  d      d}t        j                  |d       t        j                  j                  |j                        d   }t!        j"                          | }t        j                  j%                  ||      }t'        |d	      5 }	|j)                          d
{   }
|	j+                  |
       d
d
d
       |j,                  rHt        j                  j/                  |j,                        rt        j0                  |j,                         ||_        |j3                          dd|dS 7 # 1 sw Y   |xY ww)u-   
    Upload de la photo d'un événement
    r-   r.   zimage/u   Le fichier doit être une imagezuploads/eventsT)exist_ok   wbNu   Photo uploadée avec succès)r   message	photo_url)r   r   r   r1   r2   r   r   r3   content_type
startswithHTTP_400_BAD_REQUESTosmakedirspathsplitextfilenameuuiduuid4joinopenreadwriter?   existsremover'   )r+   r?   r   r   r5   
upload_dirfile_extensionrM   filepathfcontents              r    upload_event_photor[   b   si     HHUO""588x#78>>@E11,
 	

 ((2334
 	
 "JKK
T*WW%%enn5a8N**,/0Hww||J1H	h	 

$	
 {{rww~~ekk2
		%++EKIIK 1  % s1   D G"G6G7GA9GGGGc                   K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |j                  rHt        j                  j                  |j                        rt        j                  |j                         |j                  |       |j                          dddS w)u&   
    Suppression d'un événement
    r-   r.   Tu"   Événement supprimé avec succès)r   rD   )r   r   r   r1   r2   r   r   r3   r?   rI   rK   rT   rU   deleter'   r4   s       r    delete_eventr^      s      HHUO""588x#78>>@E11,
 	
 {{rww~~ekk2
		%++IIeIIK 7 s   CC)(__doc__fastapir   r   r   r   r   r   sqlalchemy.ormr	   app.db.sessionr
   app.models.userr   app.models.eventr   app.schemas.eventr   r   r   app.core.securityr   typingr   r   rI   rN   routergetboolr!   postr*   intr6   putr>   r[   r]   r^   r$       r    <module>ro      s#   P O " !   " E E / ! 	 	C] 34 $!"34&/~ 	 5  S/ ""34&/ 	 0  M-8 ""34&/ 	 9$ M-8 ""34&/	  		 94  ! S	!"34&/	... . 		. ".` } ""34&/ 	 rn   