
    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)schema)JWTPayloadSchema)Session)Messages)CarpentryBaseTblCarpentry)CustomResponsec                       e Zd ZdedefdZdeej                     fdZ	de
fdZde
dd	fd
Zdeej                     fdZde
fdZy)CarpentryServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      @/var/www/html/retail-simulation-api/app/api/carpentry/service.py__init__zCarpentryService.__init__   s    
    requestc                 n  K   g }|D ]v  }|j                   |j                  z  }|j                         }||d<   t        j                  |      }t        j                  || j                        }|j                  |       x | j                  j                          t        dt        j                        S w)Ntotal1statusmessage)number_of_unitscost_per_unit
model_dumpr
   model_validater   creater   appendcommitr   r	   	CARPENTRY)r   r   created_carpentryitemr   request_datacreated_itemsales           r   create_carpentryz!CarpentryService.create_carpentry   s     D((4+=+==E??,L$)L!(77EL&&|TWW=D$$T*  	S(2D2DEEs   B3B5group_idc                    K   t        j                  || 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   get_by_carpentryr   r   r   CarpentryResponsesr    )r   r+   new_get_carpentry	get_groups       r   get_carpentryzCarpentryService.get_carpentry   sY     (99(DGGL C8PQQUfgUf	))88CUfgggs   4A$&AA$returnr   c                   K   | j                   j                  t        j                  t        j                  t        j                  t        j                        j                  d            j                  t        j                  |k(        j                  t        j                  t        j                        j                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w w)N	total_sumr-   zGet sum ID not foundr.   )r   queryr   r+   store_format_typer   sumr   labelfiltergroup_byallr   r   CarpentrySumsr    )r   r+   new_get_and_sum_carpentryget_and_sum_carpentrys       r   rB   z&CarpentryService.get_and_sum_carpentry$   s     GGMM%%..++,22;?
 VL))X56Xl++\-K-KLSU 	" )C8NOO iB  C  iBOd$$334IJ  iB  C  	C  Cs   CD&D?D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   -1r   r   )r   r   r   r
   r    carpentry_idr   r	   CARPENTRY_UPDATE_NOTr   update_carpentryr   r#   CARPENTRY_UPDATE_SUCCESSFULLY)r   r   reqr   r'   updated_carpentrys         r   rG   z!CarpentryService.update_carpentry3   s     C''#*;*;;E>>+L$)L! - < <\ J --5%T8;X;XYY))*;*H*HIZ[_[b[bc  	S(2X2XYYs   CCrE   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)NrD   r   r   )r   delete_carpentryr   r   r	   rF   CARPENTRY_DELETE)r   rE   deleted_carpentrys      r   rL   z!CarpentryService.delete_carpentry?   sF     (99,P !x7T7TUUS(2K2KLLs   AAN)__name__
__module____qualname__r   r   r   r   r   CarpentryCreater*   intr5   rB   CarpentryUpdaterG   rL    r   r   r   r      sz    7 +; 
Fd63I3I.J 
FhC hCC C> C
Zd63I3I.J 
ZM# Mr   r   N)typingr   fastapir   
sqlalchemyr   app.api.carpentryr   app.dependency.authanticationr   sqlalchemy.ormr   app.locale.messagesr	   app.models.main.carpentryr
   r   app.utils.schemas_utilsr   r   rU   r   r   <module>r_      s,     !  $ : " ( A 27M 7Mr   