
    .i`                         d dl 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mZ d d
lmZ d dlmZ d dlmZ  G d d      Zy)    N)List)load_workbook)func)Session)schema)JWTPayloadSchema)DigitalAssetBaseTblDigitalAsset)remove_external_linkssafe_load_workbook)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ej                     fd	Zd
e
fdZy)DigitalAssetServisedbtokenc                      || _         || _        y N)r   r   )selfr   r   s      P/var/www/html/retail-simulation-api/app/api/digital_asset_acquisition/service.py__init__zDigitalAssetServise.__init__   s    
    requestc                 J  K   g }|D ]3  }t        j                  || j                        }|j                  |       5 | j                  j	                          d}d}t        ||      }t        |       |j                  |       |d   }ddddd}	d	}
|D ]>  }|	j                  |j                        }|s!|j                  ||<   |
|j                  z  }
@ |
|d
<   |j                  |       |j                          t        d|        t        dt        j                        S w)N;uploaded_files/Simulation_Test_file_clean_final_output.xlsx+files/Simulation_Test_file_clean_final.xlsxAssu Sum Mod OnlineG11G12G13G14zWebsite DevelopmentzAggregator Set-up CostszMarketplace Set-up Costsz%Content work (Copywriting and Images)r   G15#   ✅ Excel updated successfully at: 1statusmessage)r
   create_digital_assetr   appendcommitr   r   savegetitemestimate_costcloseprintr   r   DIGITAL_ASSET)r   r   created_digital_assetr/   saleOUTPUT_PATH
EXCEL_PATHworkbooksheetformat_cell_map
total_costcells               r   r*   z(DigitalAssetServise.create_digital_asset   s!     "D"77dggFD!((.  	SB
%k:>h'k" ./#(',(-5:	
 
D"&&tyy1D"00dd000
	  "e 	k"3K=ABS(2H2HIIs   B1D#4A/D#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   rA   z%DigitalAssetServise.get_digital_assetE   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
   r0   scalar)r   new_get_sum_of_estimate_costs     r   get_sum_of_estimate_costz,DigitalAssetServise.get_sum_of_estimate_costK   s7     '+ww}}TXXo>[>[5\']'d'd'f$++s   AAc                   K   g }|D ]j  }|j                   t        dt        j                        c S t	        j
                  |j                   || j                        }|sZ|j                  |       l | j                  j                          |D ]  }| j                  j                  |        d}d}t        ||      }t        |       |j                  |       |d   }	dddd	d
}
d}|D ]>  }|
j                  |j                        }|s!|j                  |	|<   ||j                  z  }@ ||	d<   |j                  |       |j!                          t#        d|        t        dt        j$                        S w)N-1r'   r   r   r   r   r    r!   r"   r#   r   r$   r%   r&   )
digital_idr   r   DIGITAL_ASSET_NOTr
   update_digital_assetr   r+   r,   refreshr   r   r-   r.   r/   r0   r1   r2   DIGITAL_ASSET_UPDATE)r   r   updated_db_objectsreqdb_objobjr6   r7   r8   r9   r:   r;   r/   r<   s                 r   rP   z(DigitalAssetServise.update_digital_assetO   sf    C~~%%T8;U;UVV %99#..#twwWF"))&1  	 &CGGOOC  & TB
%k:>h'k"./ $)',(-5:	
 
D"&&tyy1D"00dd000
	  "ek"3K=ABS(2O2OPPs   AE<!B+E<A/E<rN   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)NrM   r'   r&   )r
   delete_digital_assetr   r   r   rO   DIGITAL_ASSET_DELETE)r   rN   deleted_digital_assets      r   rX   z(DigitalAssetServise.delete_digital_asset   sI      / D DZQUQXQX Y$!x7Q7QRRS(2O2OPPs   AAN)returnr
   )__name__
__module____qualname__r   r   r   r   r   DigitalAssetCreater*   intrA   rK   DigitalAssetUpdaterP   rX    r   r   r   r      sk    ' )9 0J$v7P7P2Q 0Jdns n,3Q$v7P7P2Q 3QlQC Qr   r   )ostypingr   openpyxlr   
sqlalchemyr   sqlalchemy.ormr   !app.api.digital_asset_acquisitionr   app.dependency.authanticationr   )app.models.main.digital_asset_acquisitionr	   r
   app.utils.common_utilsr   r   app.utils.schemas_utilsr   app.locale.messagesr   fastapir   r   rb   r   r   <module>ro      s7    	  "  " 4 : W L 2 ( !{Q {Qr   