
    Jh              	          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 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mZ d d
lmZmZmZ  eddg      Zej=                  de
d       ee       eddd       eej>                  dej                   d      fdede de fd       Z!ejE                  de
d       ee      fdedefd       Z#ej=                  de
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$)%    )	APIRouterDependsQuerystatus)Session)UUID)ResponseModel)	constants)get_db)MAX_PER_PAGE)Optional)get_sub_appellationscreate_sub_appellationupdate_sub_appellationget_sub_appellations_by_iddelete_sub_appellation)SubAppellationCreateSchemaSubAppellationUpdateSchemaSubAppellationOutputSchema zSub-Appellations)prefixtagszGet all sub appellations)response_modelsummary   zPage number)defaultgedescriptionzItems per page)r   r   ler   dbpageper_pagec                 t   K   t        | ||       d {   }t        |t        j                  dd      S 7 !w)N)r    r!   r"   Tz%Sub-Appellations fetched successfullydatastatus_codesuccessmessage)r   r	   r   HTTP_200_OK)r    r!   r"   r%   s       k/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/wine/appellation/routers/sub_appellation.pylist_sub_appellationsr+      s>      &$JJD&&7	  Ks   86"8zCreate a new sub appellationpayloadc                 p   K   t        ||        d {   }t        |t        j                  dd      S 7 !w)NTz$Sub-Appellation created successfullyr$   )r   r	   r   HTTP_201_CREATED)r,   r    r%   s      r*   create_new_sub_appellationr/   ,   s;      (G44D++6	  5   64"6z/{sub_appellation_id}zGet a sub appellation by IDsub_appellation_idc                    K   t        ||        d {   }t        t        j                  |      t        j
                  dd      S 7 4w)NTz$Sub-Appellation fetched successfullyr$   )r   r	   r   model_validater   r)   )r1   r    r%   s      r*   get_sub_appellationr4   :   sH     
 ,B0BCCD'66t<&&6	  Ds   A	A5A	zUpdate a sub appellation by IDc                 r   K   t        || |       d {   }t        |t        j                  dd      S 7 !w)NTz$Sub-Appellation updated successfullyr$   )r   r	   r   r)   )r1   r,   r    r%   s       r*   update_sub_appellation_by_idr6   H   s?      (,>HHD&&6	  Is   75"7zDelete a sub appellation by IDc                 p   K   t        ||        d {    t        i t        j                  dd      S 7 !w)NTz$Sub-Appellation deleted successfullyr$   )r   r	   r   HTTP_204_NO_CONTENT)r1   r    s     r*   delete_sub_appellation_by_idr9   V   s=     
 !%7
888..6	  9r0   N))fastapir   r   r   r   sqlalchemy.ormr   uuidr   $src.apps.base.schemas.response_modelr	   	src.utilsr
   src.core.dependenciesr   src.utils.constantsr   typingr   2src.apps.wine.appellation.services.sub_appellationr   r   r   r   r   1src.apps.wine.appellation.schemas.sub_appellationr   r   r   routergetDEFAULT_PER_PAGEintr+   postr/   r4   putr6   deleter9        r*   <module>rM      s   5 5 "  >  ( ,    
"$6#7	8B}6PQ&/aA=A**!!$	
  R$ R7UV &/' W #MKhi &/


 j
 #MKkl &/' 	 m &}Nno &/


 p
rL   