
    2Yh                     x   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 d dlmZ d dlmZ d dlmZ  edd	g
      Zej+                  ded       eddd       eej,                  dej.                  d       ee      fdededefd       Zej+                  ded       ee      fdedefd       Zej7                  deej8                  d       ee      fdedefd       Zej=                  ded       ee      fdededefd        ZejA                  ded!       ee      fdedefd"       Z!y#)$    )	APIRouterDependsQuerystatus)Session)get_db)WineAppellationOutSchemaWineAppellationCreateSchemaWineAppellationUpdateSchema)appellations)ResponseModel)	constantsz/wine-appellationszWine Appellations)prefixtags/z)Get all wine appellations with pagination)response_modelsummary   zPage number to fetch)defaultgedescriptionzNumber of items per page)r   r   ler   pageper_pagedbc                 P    t        j                  || |      }t        |ddd      S )N)r   r   r      Tz&Wine appellations fetched successfullydatastatus_codesuccessmessage)serviceget_all_wine_appellationsr   )r   r   r   r   s       e/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/wine_settings/routers/appellations.pyr$   r$      s1     ,,QD8	     z/{appellation_id}zGet wine appellation by IDappellation_idc                 r    t        j                  ||       }t        t        j                  |      ddd      S )Nr   Tz%Wine appellation fetched successfullyr   )r#   get_wine_appellation_by_idr   r	   from_orm)r'   r   appellations      r%   get_appellationr,   $   s8    44RHK%..{;7	 r&   zCreate wine appellation)r   r    r   payloadc                 r    t        j                  ||       }t        t        j                  |      ddd      S )N   Tz%Wine appellation created successfullyr   )r#   create_wine_appellationr   r	   r*   )r-   r   createds      r%   create_appellationr2   /   s8    --b':G%..w77	 r&   zUpdate wine appellationc                 t    t        j                  || |      }t        t        j                  |      ddd      S )Nr   Tz%Wine appellation updated successfullyr   )r#   update_wine_appellationr   r	   r*   )r'   r-   r   updateds       r%   update_appellationr6   :   s<     --b.'JG%..w77	 r&   zDelete wine appellationc                 L    t        j                  ||        t        i ddd      S )Nr   Tz%Wine appellation deleted successfullyr   )r#   delete_wine_appellationr   )r'   r   s     r%   delete_appellationr9   G   s+    ##B77	 r&   N)"fastapir   r   r   r   sqlalchemy.ormr   src.core.dependenciesr   +src.apps.wine_settings.schemas.appellationsr	   r
   r   src.apps.wine_settings.servicesr   r#   $src.apps.base.schemas.response_modelr   	src.utilsr   routergetDEFAULT_PER_PAGEMAX_PER_PAGEintr$   r,   postHTTP_201_CREATEDr2   putr6   deleter9    r&   r%   <module>rK      s   5 5 " ( 
 D > 	.6I5J	K C7bcaA3IJ**!!.	 &/
 	 d& Gcd7>v C W  e SF<S<S]vwKRSY?  ;   x G`aMTU[_		"=	CJ	 b	 "=Jcd:A&/ s   er&   