
    	,h=	                         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 d dlmZ d d	lmZ  G d
 d      Zy)    )List)func)Session)schema)JWTPayloadSchema)DigitalAssetBaseTblDigitalAsset)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dZdej                  fd	Zdee
   fd
Zy)DigitalAssetServisedbtokenc                      || _         || _        y N)r   r   )selfr   r   s      D/var/www/html/RetailAPI/app/api/digital_asset_acquisition/service.py__init__zDigitalAssetServise.__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_digital_assetr   appendcommitr
   r   DIGITAL_ASSET)r   r   created_digital_assetitemsales        r   r   z(DigitalAssetServise.create_digital_asset   s]      "D"77dggFD!((.  	S(2H2HIIs   A0A2group_idc                    K   t        j                  || j                        }|st        dd      |D cg c]!  }t        j
                  j                  |      # c}S c c}w w)Ni  zGet group ID not found)status_codedetail)r	   get_digital_assetr   r   r   DigitalAssetResponsemodel_validate)r   r$   new_get_digital_asset	get_groups       r   r(   z%DigitalAssetServise.get_digital_asset   sY      / A A(DGG T$C8PQQWlmWl)++::9EWlmmms   4A$&AA$c                    K   | j                   j                  t        j                  t        j
                              j                         }|S wr   )r   queryr   sumr	   estimate_costscalar)r   new_get_sum_of_estimate_costs     r   get_sum_of_estimate_costz,DigitalAssetServise.get_sum_of_estimate_cost   s7     '+ww}}TXXo>[>[5\']'d'd'f$++s   AA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_dump
digital_idr
   r   DIGITAL_ASSET_NOTr	   update_digital_assetr   DIGITAL_ASSET_UPDATE)r   r   updated_digital_assets      r   r9   z(DigitalAssetServise.update_digital_asset"   ss      0 ? ?@R@R@T U ++3!x7Q7QRR,,-B-M-MOdfjfmfmnS(2O2OPPs   BBc                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr5   )r	   delete_digital_assetr   r
   r   r8   DIGITAL_ASSET_DELETE)r   r$   deleted_digital_assets      r   r=   z(DigitalAssetServise.delete_digital_asset)   sF      / D DXtww W$!x7Q7QRRS(2O2OPPs   AAN)returnr	   )__name__
__module____qualname__r   r   r   r   r   DigitalAssetCreater   intr(   r3   DigitalAssetUpdater9   r=    r   r   r   r      sh    ' )9 Jf6O6O1P Jns n,Q1J1J QQ$s) Qr   r   N)typingr   
sqlalchemyr   sqlalchemy.ormr   !app.api.digital_asset_acquisitionr   app.dependency.authanticationr   )app.models.main.digital_asset_acquisitionr   r	   app.utils.schemas_utilsr
   app.locale.messagesr   fastapir   r   rG   r   r   <module>rQ      s,      " 4 : W 2 ( !"Q "Qr   