
    .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m	Z	 d dl
mZ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  G d d      Zy)    N)List)load_workbook)schema)ConceptOfficeBaseTblConceptOffice)remove_external_linkssafe_load_workbook)CustomResponse)Session)JWTPayloadSchema)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)ConceptOfficeServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      E/var/www/html/retail-simulation-api/app/api/concept_office/service.py__init__zConceptOfficeService.__init__   s    
    requestc                 B  K   g }d}d}t        ||      }t        |       |j                  |       |d   }|D ]d  }t        j                  |j                               }t        j                  || j                        }	| j                  j                  |	       | j                  j                          |j                  |	       |	j                  }
dddddd	}|
|v s||
   }t        |j                  xs d
      |d| <   t        |j                  xs d
      |d| <   t        |j                   xs d
      |d| <   t        |j"                  xs d
      |d| <   t        |j$                  xs d
      |d| <   t        |j&                  xs d
      |d| <   g | j                  j)                          |j                  |       |j+                          t-        dt.        j0                  j3                  |             t5        dt6        j8                        S w)N;uploaded_files/Simulation_Test_file_clean_final_output.xlsx+files/Simulation_Test_file_clean_final.xlsxOrg Structure                              r   DCFILO"   ✅ Excel updated successfully at:1statusmessage)r	   r   saver   model_validate
model_dumpr   creater   addflushappend
concept_idfloatcost_to_companyy1y2y3y4y5commitcloseprintospathabspathr
   r   CORPORATE_CONCEPT_OFFICE)r   r   r6   OUTPUT_PATH
EXCEL_PATHworkbooksheetreqcreatedsalecidrow_maprows                r   rN   zConceptOfficeService.created   s    SB
%k:>h'k" )C'66s~~7GHG#**7DGG<DGGKKGGMMOMM$//Crb9Gg~cl#()@)@)EA#F#i #(q#9#i #(q#9#i #(q#9#i #(q#9#i #(q#9#i    	k"2BGGOOK4PQS(2S2STTs   CHEH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   ConceptOfficeResponser4   )r   rS   
geted_data	get_groups       r   getedzConceptOfficeService.getedE   sX     %))(DGG<
C8PQQXbcXb9,,;;IFXbcccs   4A$&AA$c                 8  K   d}d}t        ||      }t        |       |j                  |       |d   }dddddd	}|D ]Y  }t        j                  |j                               }|j                  t        d
t        j                        c S t        j                  |j                  || j                         |j                  }	|	|v r||	   }
n|j                  dz   }
t        |j                  xs d      |d|
 <   t        |j                   xs d      |d|
 <   t        |j"                  xs d      |d|
 <   t        |j$                  xs d      |d|
 <   t        |j&                  xs d      |d|
 <   t        |j(                  xs d      |d|
 <   \ | j                  j+                          |j                  |       |j-                          t/        dt0        j2                  j5                  |             t        dt        j6                        S w)Nr   r   r   r   r   r   r    r!   r"   -1r0   r#   r   r(   r)   r*   r+   r,   r-   r.   r/   )r	   r   r3   r   r4   r5   r:   r
   r   CORPORATE_CONCEPT_OFFICE_NOTr   updater   max_rowr;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   CORPORATE_CONCEPT_OFFICE_UPDATE)r   r   rI   rJ   rK   rL   rQ   rM   updatedrP   rR   s              r   rb   zConceptOfficeService.updatedT   s    SB
%k:>h'k" )RB2"5C'66s~~7GHG!!)%T8;`;`aa##G$6$6I$$Cg~clmma'$W%<%<%ABEAcU)$WZZ_15EAcU)$WZZ_15EAcU)$WZZ_15EAcU)$WZZ_15EAcU)$WZZ_15EAcU)   	k"2BGGOOK4PQS(2Z2Z[[s   HHcorporate_idc                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr]   r0   r/   )r   deleter   r
   r   CONCEPT_OFFICE_NOTCONCEPT_OFFICE_DELETE)r   rc   deleted_datas      r   deletedzConceptOfficeService.deleted}   sE     '..|TWWE!x7R7RSSS(2P2PQQs   AAN)__name__
__module____qualname__r   r   r   r   r   ConceptOfficeCreaterN   intr[   ConceptOfficeUpdaterb   ri    r   r   r   r      sf    ' )9 'UT&*D*D%E 'URd3 d'\T&*D*D%E '\RR Rr   r   )rE   typingr   openpyxlr   app.api.concept_officer   app.models.main.concept_officer   r   app.utils.common_utilsr   r	   app.utils.schemas_utilsr
   sqlalchemy.ormr   app.dependency.authanticationr   app.locale.messagesr   fastapir   r   rp   r   r   <module>r{      s4    	  " ) N L 2 " : ( !sR sRr   