
    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_appellationscreate_appellationupdate_appellationget_appellations_by_iddelete_appellation)AppellationCreateSchemaAppellationUpdateSchemaAppellationOutputSchema Appellations)prefixtagszGet all 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!Appellations fetched successfullydatastatus_codesuccessmessage)r   r	   r   HTTP_200_OK)r!   r"   r#   r&   s       g/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/wine/appellation/routers/appellation.pylist_appellationsr,      s>      "RdXFFD&&3	  Gs   86"8zCreate a new appellationpayloadc                 p   K   t        ||        d {   }t        |t        j                  dd      S 7 !w)NTz Appellation created successfullyr%   )r   r	   r   HTTP_201_CREATED)r-   r!   r&   s      r+   create_new_appellationr0   ,   s;      $B00D++2	  1   64"6z/{appellation_id}zGet a appellation by IDappellation_idc                    K   t        ||        d {   }t        t        j                  |      t        j
                  dd      S 7 4w)NTz Appellation fetched successfullyr%   )r   r	   r   model_validater   r*   r2   r!   r&   s      r+   get_appellationr6   :   sF     
 (N;;D$33D9&&2	  <s   A	A5A	zUpdate a appellation by IDc                 r   K   t        || |       d {   }t        |t        j                  dd      S 7 !w)NTz Appellation updated successfullyr%   )r   r	   r   r*   )r2   r-   r!   r&   s       r+   update_existing_appellationr8   H   s>      $B@@D&&2	  As   75"7zDelete a appellation by IDc                 p   K   t        ||        d {   }t        i t        j                  dd      S 7 !w)NTz Appellation deleted successfullyr%   )r   r	   r   HTTP_204_NO_CONTENTr5   s      r+   delete_appellation_by_idr;   V   s;     
 $B77D..2	  8r1   N))fastapir   r   r   r   sqlalchemy.ormr   uuidr   $src.apps.base.schemas.response_modelr	   	src.utilsr
   src.core.dependenciesr   src.utils.constantsr   typingr   .src.apps.wine.appellation.services.appellationr   r   r   r   r   -src.apps.wine.appellation.schemas.appellationr   r   r   routergetDEFAULT_PER_PAGEintr,   postr0   r6   putr8   deleter;        r+   <module>rO      s   5 5 "  >  ( ,    
"N#3	4B}6LM&/aA=A**!!$	
  N$ R7QR &/$ S G`a &/


 b
 Gcd &/$ 	 e "=Jfg &/


 h
rN   