
    {%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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)Session)schema)JWTPayloadSchema)OnlineStoreFormatBaseTblOnlineStoreFormat)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ej                     fdZd	e
fd
Zy)OnlineStoreFormatServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      J/var/www/html/retail-simulation-api/app/api/online_store_format/service.py__init__z!OnlineStoreFormatService.__init__   s    
    requestc                   K   d}d}t        j                  dd       t        |      }t         j                  j	                  |      rt        |      }nt        |      }|D ]&  }t        j                  |j                               }t        j                  || j                         | j                  j                          |j                  dk(  r3|d   }|j                  |d<   |j                  |d	<   |j                  |d
<   |j                  dk(  r3|d   }|j                  |d<   |j                  |d<   |j                  |d<   |j                  dk(  s|d   }	|j                  |	d<   |j                  |	d<   |j                  |	d<   ) |j!                  |       |j#                          t%        d|       t'        dt(        j*                        S w)N+files/Simulation_Test_file_clean_final.xlsx;uploaded_files/Simulation_Test_file_clean_final_output.xlsxuploaded_filesTexist_okInvestment & Capital ExpensesPlan Working OnlineF11H11J11Number of TransactionsF33H33J33Average Transaction ValueF35H35J35"   ✅ Excel updated successfully at:1statusmessage)osmakedirsr   pathexistsr   model_validate
model_dumpr	   creater   commitmetricy1_y2y3_y4y5_y6savecloseprintr
   r   ONLINE_STORE_FORMAT)
r   r   
EXCEL_PATHOUTPUT_PATHworkbookreqcreated_datasheet_asheet_bsheet_cs
             r   createdz OnlineStoreFormatService.created   s    B
S
$t4 ,77>>+&$[1H %Z0HC0??@PQL ''dgg>GGNNzz<<"#89!-!3!3!-!3!3!-!3!377"#89!-!3!3!-!3!3!-!3!3::"#89!-!3!3!-!3!3!-!3!3% & 	k"2K@S(2N2NOOs   EGA=G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	   getr   r   r   OnlineStoreFormatResponser3   )r   rH   
geted_data	get_groups       r   getedzOnlineStoreFormatService.geted4   sX     )--h@
C8PQQ\fg\fy00??	J\fgggs   4A$&AA$c                   K   d}d}t        j                  dd       t        |      }t         j                  j	                  |      rt        |      }nt        |      }|D ]A  }t        j                  |j                               }|j                  t        dt        j                        c S t        j                  |j                  || j                        }|j                  dk(  r3|d	   }|j                   |d
<   |j"                  |d<   |j$                  |d<   |j                  dk(  r3|d	   }|j                   |d<   |j"                  |d<   |j$                  |d<   |j                  dk(  s|d	   }|j                   |d<   |j"                  |d<   |j$                  |d<   D |j'                  |       |j)                          t+        d|       t        dt        j,                        S w)Nr   r   r   Tr   -1r,   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   )r/   r0   r   r1   r2   r   r3   r4   	online_idr
   r   ONLINE_STORE_FORMAT_NOTr	   updater   r7   r8   r9   r:   r;   r<   r=   ONLINE_STORE_FORMAT_UPDATE)	r   r   r?   r@   rA   rB   updated_datadb_objsheets	            r   updatedz OnlineStoreFormatService.updated:   s    B
S
$t4 ,77>>+&$[1H %Z0HC0??@PQL%%-%T8;[;[\\)001G1GW[W^W^_Fzz<< !67%||e%||e%||e77 !67%||e%||e%||e:: !67%||e%||e%||e+ . 	k"2K@S(2U2UVVs   E-G.1A=G.rS   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)NrR   r,   r+   )r	   deleter   r
   r   rT   ONLINE_STORE_FORMAT_DELETE)r   rS   deleted_datas      r   deletedz OnlineStoreFormatService.deletedb   sE     +229dggF!x7W7WXXS(2U2UVVs   AAN)__name__
__module____qualname__r   r   r   r   r   OnlineStoreFormatCreaterG   intrP   OnlineStoreFormatUpdaterZ   r_    r   r   r   r      sf    ' )9 !PD)G)G$H !PFh3 h&WT&*H*H%I &WPWc Wr   r   )r/   typingr   openpyxlr   sqlalchemy.ormr   app.api.online_store_formatr   app.dependency.authanticationr   #app.models.main.online_store_formatr   r	   app.utils.schemas_utilsr
   app.locale.messagesr   fastapir   r   rf   r   r   <module>rp      s1    	  " " . : [ 2 ( !ZW ZWr   