
    hQ                     |    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 d dlmZ d dlmZ  G d	 d
      Zy)    )List)Session)schema)JWTPayloadSchema)	SalesBaseTblSales)CustomResponse)Messages)HTTPExceptionc                       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j                  fdZdee
   fdZy)SalesServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      0/var/www/html/RetailAPI/app/api/sales/service.py__init__zSalesService.__init__   s    
    requestc                    K   g }|D ]3  }t        j                  || j                        }|j                  |       5 | j                  j	                          t        dt        j                        S w)N1statusmessage)r   create_salesr   appendcommitr	   r
   SALES)r   r   created_salesitemsales        r   r   zSalesService.create_sales   s\      D((tww7D  &  	S(..AAs   A0A2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_salesr   r   r   SalesResponsemodel_validate)r   r"   new_get_sales	get_groups       r   r(   zSalesService.get_sales%   sX      **8TWW=C8PQQP]^P]9$$33I>P]^^^s   4A$&AA$get_idreturnr   c                 2  K   | j                   j                  t        j                  t        j                  z  j                  d            j                  t        j                  |k(        j                         }|st        dd      d|j                  iS w)Ntabler$   zID not foundr%   total)r   queryr   average_transaction_valuenumber_of_transaction_per_monthlabelfiltersales_idfirstr   r0   )r   r-   get_multiple_datas      r   get_multiplezSalesService.get_multiple+   s      GGMM33h6^6^^eefmn VH%%/0UW 	 !CGG*0011s   BBc                 *  K   t        j                  |j                               }|j                  t	        dt
        j                        S t        j                  |j                  || j                         t	        dt
        j                        S wNz-1r   r   )r   r*   
model_dumpr7   r	   r
   	SALES_NOTr   update_salesr   SALES_UPDATE)r   r   updated_saless      r   r?   zSalesService.update_sales9   sm     !001C1C1EF!!)!x7I7IJJm44mTWWMS(2G2GHHs   BBc                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr<   )r   delete_salesr   r	   r
   r>   SALES_DELETE)r   r"   deleted_saless      r   rC   zSalesService.delete_sales@   sE      --h@!x7I7IJJS(2G2GHHs   AAN)__name__
__module____qualname__r   r   r   r   r   SalesCreater   intr(   r:   SalesUpdater?   rC    r   r   r   r   
   sv    ' )9 	Bf.@.@)A 	B_s _2 2z 2I);); II$s) Ir   r   N)typingr   sqlalchemy.ormr   app.api.salesr   app.dependency.authanticationr   app.models.main.salesr   r   app.utils.schemas_utilsr	   app.locale.messagesr
   fastapir   r   rL   r   r   <module>rU      s)     "   : 5 2 ( !:I :Ir   