
    h)              
          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 d d
lmZ d dlmZmZmZmZ m!Z"  eddg      Z#e#jI                  de
d       ee       e        eddd       eejJ                  dej                  d      fdedede&de&fd       Z'e#jI                  de
d       ed       ee      fde(defd       Z!e#jI                  d e
d!       ee      fd"e&defd#       Ze#jS                  d e
d$       ee      fd"e&dedefd%       Ze#jU                  de
d&       ee      fdedefd'       Zy())    )	APIRouterDependsQuerystatus)Session)UUID)ResponseModel)MAX_PER_PAGE)get_db)	constants)Optional)ProducerFilterSchemaProducerSchemaProducerUpdateSchemaProducerCreateSchema)ProducerOutputSchema)get_producersget_producer_by_idupdate_producercreate_producerget_literal_by_reg_code 	Producers)prefixtagszGet all producer pagination)response_modelsummary   zPage number)defaultgedescriptionzItems per page)r   r    ler!   dbpayloadpageper_pagec                 v   K   t        | |||       d {   }t        |t        j                  dd      S 7 !w)N)r#   r$   r%   r&   TzProducers fetched successfullydatastatus_codesuccessmessage)r   r	   r   HTTP_200_OK)r#   r$   r%   r&   	producerss        a/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/wine/producer/routers/producer.pylist_all_wine_dbsr0      sI      $	 I &&0	 s   97"9z/literal-by-reg-codezGet literal by reg_code.reg_codec                 p   K   t        ||        d {   }t        |t        j                  dd      S 7 !w)NTzLiteral fetched successfullyr(   )get_literal_by_reg_code_servicer	   r   r-   )r1   r#   r)   s      r/   r   r   *   s;     
 1X>>D&&.	  ?s   64"6z/{producer_id}zGet a producer by IDproducer_idc                    K   t        ||        d {   }t        t        j                  |      t        j
                  dd      S 7 4w)N)r4   TzProducer fetched successfullyr(   )get_producer_by_id_servicer	   r   model_validater   r-   )r4   r#   r)   s      r/   r   r   7   sG     
 ,BKHHD**40&&/	  Is   A
A5A
zUpdate a producer by IDc                    K   t        || |       d {   }t        t        j                  |      t        j
                  dd      S 7 4w)N)r4   r$   TzProducer updated successfullyr(   )update_producer_servicer	   r   r7   r   r-   )r4   r$   r#   r)   s       r/   r   r   D   sI      )gVVD**40&&/	  Ws   AA	5AzCreate a new producerc                 r   K   t        ||        d {   }t        |t        j                  dd      S 7 !w)N)r$   TzProducer created successfullyr(   )create_producer_servicer	   r   HTTP_201_CREATED)r$   r#   r)   s      r/   r   r   R   s;     
 )W==D++/	  >s   75"7N)+fastapir   r   r   r   sqlalchemy.ormr   uuidr   $src.apps.base.schemas.response_modelr	   src.utils.constantsr
   src.core.dependenciesr   	src.utilsr   typingr   'src.apps.wine.producer.schemas.producerr   r   r   r   r   (src.apps.wine.producer.services.producerr   r   r6   r   r9   r   r;   r   r3   routergetDEFAULT_PER_PAGEintr0   strputpost     r/   <module>rP      s   5 5 "  > , (   B  B H E  E	"K=	1B}6ST&/$+IaA=A**!!$		!  	 U2 "=Jcd#J&/


 e
 ]DZ[ &/


 \
 ]D]^ &/! 	 _ R7NO &/
!

 P
rO   