
    ;gEii              
          d Z ddl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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 ddlmZ  e       Zej7                  dee         ddd ee	      fdedededefd       Zej7                  de       ee	      fdedefd       ZejA                  de       ee       ee	      fdededefd       Z!ej7                  dee          ee       ee	      fdedefd       Z"y)u@   
Endpoints publics pour les événements (utilisateurs mobiles)
    )	APIRouterDependsHTTPExceptionstatus)Session)get_db)User)Event
EventState)EventRegistration)EventResponseEventRegistrationCreateEventRegistrationResponse)get_current_user)List)datetime/)response_modelT   upcoming_onlyskiplimitdbc                   K   |j                  t              j                  t        j                  dk(  t        j                  t
        j                  k(        }| rB|j                  t        j                  t        j                         j                         k\        }|j                  t        j                  j                               j                  |      j                  |      j                         }|S w)u(   
    Liste des événements publics
    T)queryr
   filter	is_publicstater   	PUBLISHEDdater   noworder_byascoffsetr   all)r   r   r   r   r   eventss         C/home/www/lebenam.kofcorporation.com/app/api/v1/endpoints/events.pyget_public_eventsr(      s      HHUO""4z+++E
 UZZ8<<>+>+>+@@A^^EJJNN,-44T:@@GKKMFMs   C5C7z/{event_id}event_idc                 2  K   |j                  t              j                  t        j                  | k(  t        j                  dk(  t        j
                  t        j                  k(        j                         }|st        t        j                  d      |S w)u*   
    Détails d'un événement public
    Tu   Événement non trouvéstatus_codedetail)r   r
   r   idr   r   r   r   firstr   r   HTTP_404_NOT_FOUND)r)   r   events      r'   get_event_detailsr2   '   s{      HHUO""H4z+++ eg	 
 11,
 	

 Ls   BBz	/registerregistrationcurrent_userc                   K   |j                  t              j                  t        j                  | j                  k(  t        j
                  t        j                  k(        j                         }|st        t        j                  d      |j                  t              j                  t        j                  | j                  k(  t        j                  |j                  k(        j                         }|rt        t        j                  d      |j                  rw|j                  t              j                  t        j                  | j                  k(        j!                         }||j                  k\  rt        t        j                  d      t        | j                  |j                  | j"                        }|j%                  |       |j'                          |j)                  |       |S w)u'   
    Inscription à un événement
    u)   Événement non trouvé ou non disponibler+   u,   Vous êtes déjà inscrit à cet événementu   Événement complet)r)   user_idregistration_data)r   r
   r   r.   r)   r   r   r   r/   r   r   r0   r   r6   HTTP_400_BAD_REQUESTmax_participantscountr7   addcommitrefresh)r3   r4   r   r1   existingcurrent_countnew_registrations          r'   register_to_eventrA   =   s     HHUO""L)))z+++ eg 

 11>
 	
 xx)*11""l&;&;;!!\__4 eg 
 33A
 	
 !23::&&,*?*??

%' 	 E222"77,  )&&&88 FFIIKJJ s   G4G6z/my-registrations/c                    K   |j                  t              j                  t        j                  | j                  k(        j                  t        j                  j                               j                         }|S w)z1
    Liste des inscriptions de l'utilisateur
    )	r   r   r   r6   r.   r"   
created_atdescr%   )r4   r   registrationss      r'   get_my_registrationsrF   w   s_      HH./66!!\__4h ++0023CCE  s   A;A=N)#__doc__fastapir   r   r   r   sqlalchemy.ormr   app.db.sessionr   app.models.userr	   app.models.eventr
   r   app.models.event_registrationr   app.schemas.eventr   r   r   app.core.securityr   typingr   r   routergetboolintr(   r2   postrA   rF        r'   <module>rX      sb   > = " !   . ; _ _ .  	C] 34&/	
  		 5( M-8 &/ 9* [)BC !!12&/7)77 	7 D7r  6O1PQ !12&/ RrW   