
    Eh                         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 d d	lmZ  G d
 d      Zy)    )List)HTTPException)func)Session)schema)JWTPayloadSchema)Messages)TblVisualMerchElementsVisualMerchElementsBase)CustomResponsec                       e Zd ZdedefdZdej                  fdZde	fdZ
de	d	d
fdZde	d	d
fdZdeej                     fdZde	fdZy)VisualMerchElementsServicedbtokenc                      || _         || _        y N)r   r   )selfr   r   s      T/var/www/html/retail-simulation-api/app/api/visual_merchandising_elements/service.py__init__z#VisualMerchElementsService.__init__   s    
    requestc                 :  K   |j                   |j                  z  }|j                         }||d<   t        j                  |      }t        j                  || j                         | j                  j                          t        dt        j                        S w)Ntotal1statusmessage)unitscost_per_unit
model_dumpr   model_validater
   creater   commitr   r	   VISUAL_CREATE)r   r   r   request_datacreated_visual_merch_elementss        r   create_visual_merch_elementsz7VisualMerchElementsService.create_visual_merch_elements   sy      5 55))+ %W(?(N(N|(\%%%&CTWWMS(2H2HIIs   BBvisual_get_idc                    K   t        j                  || j                        }t        j                  j                  |      S wr   )r
   !get_visual_merch_elements_data_idr   r   VisualMerchElementsResponser!   )r   r(   new_get_visual_merch_elementss      r   get_visual_merch_elementsz4VisualMerchElementsService.get_visual_merch_elements   s9     (>(`(`anptpwpw(x%11@@A^__s   A Agroup_idreturnr
   c                 &  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w w)N  zGet group ID not foundstatus_codedetail)
r   queryr
   filterr.   allr   r   r+   r!   )r   r.   #new_get_group_visual_merch_elements	get_groups       r   get_group_visual_merch_elementsz:VisualMerchElementsService.get_group_visual_merch_elements   s     .2ggmm<R.S.Z.Z[q[z[z  G  \G  /H  /L  /L  /N+2C8PQQ _B  C  _BQZ22AA)L  _B  C  	C  Cs   A!B#&B	Bc                   K   | j                   j                  t        j                  t	        j
                  t        j                        j                  d            j                  t        j                  |k(        j                  t        j                        j                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w w)N	total_sumr1   zGet sum ID not foundr2   )r   r5   r
   r.   r   sumr   labelr6   group_byr7   r   r   VisualMerchElementsSumr!   )r   r.   %new_get_and_sum_visual_merch_elements!get_and_sum_visual_merch_elementss       r    get_sum_of_visual_merch_elementsz;VisualMerchElementsService.get_sum_of_visual_merch_elements#   s     GGMM&///556<<[I V*33x?@X,556SU 	. 5C8NOO Jo  p  Jo  eF--<<=^_  Jo  p  	p  ps   B9C);&C$!C)c                   K   |D ]  }|j                   |j                  z  }|j                         }||d<   t        j                  |      }|j
                  t        dt        j                        c S t        j                  |j
                  || j                          | j                  j                          t        dt        j                        S w)Nr   z-1r   r   )r   r   r    r   r!   	visual_idr   r	   VISUAL_UPDATE_NOTr
   update_visual_merch_elements_idr   r#   VISUAL_UPDATE_SUC)r   r   reqr   r%   "updated_visual_merch_elements_datas         r   !update_visual_merch_elements_dataz<VisualMerchElementsService.update_visual_merch_elements_data1   s     CII 1 11E>>+L$)L!1H1W1WXd1e.1;;C%T8;U;UVV"BBCeCoCo  rT  UY  U\  U\  ]  	S(2L2LMMs   CCvisual_delete_idc                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr   r   )r
   delete_visual_merch_elements_idr   r   r	   rF   VISUAL_DELETE_SUC)r   rL   delete_visual_merch_elementss      r   !delete_visual_merch_elements_dataz<VisualMerchElementsService.delete_visual_merch_elements_data=   sJ     '=']']^nosovov'w$+!h6P6PQQS(2L2LMMs   AAN)__name__
__module____qualname__r   r   r   r   VisualMerchElementsCreater'   intr-   r:   rC   r   VisualMerchElementsUpdaterK   rQ    r   r   r   r      s    ' )9 J9Y9Y J`C `CS CD\ Cpc pE] p
Nd6CcCc>d 
NNs Nr   r   N)typingr   fastapir   
sqlalchemyr   sqlalchemy.ormr   %app.api.visual_merchandising_elementsr   app.dependency.authanticationr   app.locale.messagesr	   -app.models.main.visual_merchendising_elementsr
   r   app.utils.schemas_utilsr   r   rX   r   r   <module>rb      s,     !  " 8 : ( i 26N 6Nr   