
    Jh              
          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
 d dlmZmZ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  ed	d
g      Zej9                  de
d       edd       eej:                  dej<                         ee       ee      fdedededefd       Z ej9                  de
d       ee      fdedefd       Z!ejE                  de
ejF                  d       ee      fdedefd       Z$ejK                  de
d       ee      fdededefd       Z&ejO                  de
d        ee      fdedefd!       Z(ej9                  d"e
d#       edd       eej:                  dej<                         e        ee      fdedededefd$       Z)ej9                  d%e
d&       ee      fd'edefd(       Z*ejE                  d"e
ejF                  d)       ee      fdedefd*       Z+ejK                  d%e
d+       ee      fd'ededefd,       Z,ejO                  d%e
d-       ee      fd'edefd.       Z-y/)0    )UUID)	APIRouterDependsstatusQuery)Session)ResponseModel)LocationCreateSchemaLocationUpdateSchemaLocationOutSchemaLocaleCreateSchemaLocaleUpdateSchemaLocaleOutSchemaLocationFilterSchemaLocaleFilterSchema)	locations)get_db)	constantsz
/locationszLocations & Locales)prefixtagsz/localeszGet all locales with pagination)response_modelsummary   )defaultge)r   r   lepageper_pagedbpayloadc                    K   t        j                  || ||       d {   }t        |t        j                  dd      S 7 !w)Nr   r   r    TzLocales fetched successfullydatastatus_codesuccessmessage)serviceget_all_localesr	   r   HTTP_200_OK)r   r   r   r    r$   s        Y/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/base/routers/locations.pyr)   r)      sG      (($SZ[[D&&.	  \   AA"Az/locales/{locale_id}zGet locale by ID	locale_idc                    K   t        j                  ||        d {   }t        t        j                  |      t
        j                  dd      S 7 4w)NTzLocale fetched successfullyr#   )r(   get_locale_by_idr	   r   from_ormr   r*   )r-   r   locales      r+   r/   r/   )   sJ     ++B	::F%%f-&&-	  ;   AA5AzCreate locale for location)r   r%   r   c                    K   t        j                  ||        d {   }t        t        j                  |      t
        j                  dd      S 7 4w)NTzLocale created successfullyr#   )r(   create_localer	   r   r0   r   HTTP_201_CREATEDr    r   createds      r+   create_locale_for_locationr8   4   sJ     ))"g66G%%g.++-	  7r2   zUpdate localec                    K   t        j                  || |       d {   }t        t        j                  |      t
        j                  dd      S 7 4w)NTzLocale updated successfullyr#   )r(   update_localer	   r   r0   r   r*   )r-   r    r   updateds       r+   r:   r:   ?   sM     ))"iAAG%%g.&&-	  B   AA5AzDelete localec                 h   K   t        j                  ||        d {    t        i ddd      S 7 w)N   TzLocale deleted successfullyr#   )r(   delete_localer	   )r-   r   s     r+   r?   r?   J   s:     


I
...-	  /   202 z!Get all locations with paginationc                    K   t        j                  || ||       d {   }t        |t        j                  dd      S 7 !w)Nr"   TzLocations fetched successfullyr#   )r(   get_all_locationsr	   r   r*   )r   r   r    r   r$   s        r+   list_locationsrD   W   sG      **2D8U\]]D&&0	  ^r,   z/{location_id}zGet location by idlocation_idc                    K   t        j                  ||        d {   }t        t        j                  |      t
        j                  dd      S 7 4w)NTzLocation fetched successfullyr#   )r(   get_location_by_idr	   r   r0   r   r*   )rE   r   locations      r+   get_location_by_uuidrI   g   sK     //K@@H''1&&/	  Ar2   zCreate location with localesc                    K   t        j                  ||        d {   }t        t        j                  |      t
        j                  dd      S 7 4w)NTzLocation created successfullyr#   )r(   create_location_with_localesr	   r   r0   r   r5   r6   s      r+   rK   rK   r   sK     88WEEG''0++/	  Fr2   zUpdate locationc                    K   t        j                  || |       d {   }t        t        j                  |      t
        j                  dd      S 7 4w)NTzLocation updated successfullyr#   )r(   update_locationr	   r   r0   r   r*   )rE   r    r   r;   s       r+   rM   rM   }   sM     ++BWEEG''0&&/	  Fr<   zDelete locationc                 h   K   t        j                  ||        d {    t        i ddd      S 7 w)Nr>   TzLocation deleted successfullyr#   )r(   delete_locationr	   )rE   r   s     r+   rO   rO      s:     

!
!"k
222/	  3r@   N).uuidr   fastapir   r   r   r   sqlalchemy.ormr   $src.apps.base.schemas.response_modelr	   src.apps.base.schemas.locationsr
   r   r   r   r   r   r   r   src.apps.base.servicesr   r(   src.core.dependenciesr   	src.utilsr   routergetDEFAULT_PER_PAGEMAX_PER_PAGEintr)   r/   postr5   r8   putr:   deleter?   rD   rI   rK   rM   rO        r+   <module>rb      s5    5 5 " >	 	 	 8 ( 	,.C-D	E
 J}>_`aA&)"<"<yG]G]^&/")*<"=	
 	  	 a "=J\]9@ c w  ^ Z6CZCZ  eA  BPWX^P_ .@ g  B "=/ZSZ[aSb 3 1C   [ %m_]6=fo 3 G  ^ B}6YZaA&)"<"<yG]G]^$+I&/	
 " 		 [ ]DXY?Fv C W  Z R6;R;R\z{T[\bTc 0D '  | ]DUVY`agYh s 5I w  W GXY:A&/ s   Zra   