
    .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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)CapExRefurbishBaseTblCapExRefurbish)remove_external_linkssafe_load_workbook)CustomResponse)Messages)HTTPExceptionc                   z    e Zd ZdedefdZdej                  fdZde	fdZ
deej                     fdZd	e	fd
Zy)CapExRefurbishServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      G/var/www/html/retail-simulation-api/app/api/cap_ex_refurbish/service.py__init__zCapExRefurbishService.__init__   s    
    requestc                   K   t        j                  |j                               }t        j                  || j
                         | j
                  j                          d}d}t        ||      }t        |       |j                  |       |d   }|j                  |d<   |d   }|j                  |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Plan Working AL30Plan Working B"   ✅ Excel updated successfully at:1statusmessage)r   model_validate
model_dumpr	   creater   commitr   r
   savey7_y8closeprintr   r   CAP_EX_REFURBISH)r   r   created_dataOUTPUT_PATH
EXCEL_PATHworkbooksheet_asheet_bs           r   createdzCapExRefurbishService.created   s     )889K9K9MN  tww7SB
%k:>h'k" +,%+++,%++k"2K@S(2K2KLLs   C:C<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   CapExRefurbishResponser$   )r   r4   
geted_data	get_groups       r   getedzCapExRefurbishService.geted0   sX     &**8TWW=
C8PQQYcdYcI--<<YGYcddds   4A$&AA$c                 B  K   d}d}t        ||      }t        |       |j                  |       d }|D ]y  }t        j                  |j                               }|j                  t        dt        j                        c S t        j                  |j                  || j                        }{ |d   }|j                  |d<   |d   }	|j                  |	d<   |j                  |       |j                          t        d|       t        d	t        j                         S w)
Nr   r   -1r!   r   r   r   r   r    )r   r
   r(   r   r$   r%   cap_idr   r   CAP_EX_REFURBISH_NOTr	   updater   r)   r*   r+   CAP_EX_REFURBISH_UPDATE)
r   r   r.   r/   r0   objrequpdated_datar1   r2   s
             r   updatedzCapExRefurbishService.updated6   s     SB
%k:>h'k" C-<<S^^=MNL""*%T8;X;XYY#**<+>+>dggVC  +,+,k"2K@S(2R2RSSs   DDr?   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr>   r!   r    )r	   deleter   r   r   r@   CAP_EX_REFURBISH_DELETE)r   r?   deleted_datas      r   deletedzCapExRefurbishService.deletedm   sE     (//@!x7T7TUUS(2R2RSSs   AAN)__name__
__module____qualname__r   r   r   r   CapExRefurbishCreater3   intr<   r   CapExRefurbishUpdaterF   rK    r   r   r   r      s`    ' )9 MF$?$? M<e3 eTT&*E*E%F TnT3 Tr   r   )ostypingr   openpyxlr   sqlalchemy.ormr   app.api.cap_ex_refurbishr   app.dependency.authanticationr    app.models.main.cap_ex_refurbishr   r	   app.utils.common_utilsr
   r   app.utils.schemas_utilsr   app.locale.messagesr   fastapir   r   rR   r   r   <module>r^      s4    	  " " + : R L 2 ( !dT dTr   