
    &0it                         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 d d	lmZ d d
lmZmZ d dlmZmZ d dlmZ  G d d      Zy)    N)List)HTTPException)load_workbook)func)Session)schema)JWTPayloadSchema)Messages)IntegratedMarketingBaseTblIntegratedMarketing)remove_external_linkssafe_load_workbook)CustomResponsec                       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
dd	fd
Zdeej                     fdZde
fdZy)IntegratedMarketingServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      K/var/www/html/retail-simulation-api/app/api/integrated_marketing/service.py__init__z#IntegratedMarketingService.__init__   s    
    requestc                 p  K   g }|D ]v  }|j                   |j                  z  }|j                         }||d<   t        j                  |      }t        j                  || j                        }|j                  |       x | j                  j                          d}d}	t        ||	      }
t        |
       |
j                  |       |
d   }j                  |d<   |
d   }|j                  |d<   |
j                  |       |
j                          t        d|       t        dt         j"                  	      S w)
Nestimated_budget;uploaded_files/Simulation_Test_file_clean_final_output.xlsx+files/Simulation_Test_file_clean_final.xlsxAssu Sum Mod AI16Assu Sum Mod B"   ✅ Excel updated successfully at:1statusmessage)budget_allocatedmarketing_budget
model_dumpr   model_validater   create_integrated_marketingr   appendcommitr   r   savecloseprintr   r
   INTEGRATED_MARKETING)r   r   created_integarted_marketingitemestimate_budgetrequeste_datacreate_itemsaleOUTPUT_PATH
EXCEL_PATHworkbooksheet_asheet_bs                r   create_integarted_marketingz6IntegratedMarketingService.create_integarted_marketing   s    ')$D"33d6K6KKO OO-M0?M,-1@@OK)EEkSWSZSZ[D(//5  	SB
%k:>h'k" +,..+,..k"2K@S(2O2OPPs   D4D6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_integrated_marketingr   r   r   IntegratedMarketingResponser)   )r   r=   new_get_integrated_marketing	get_groups       r   rB   z3IntegratedMarketingService.get_integrated_marketing8   s^     '='V'VW_aeahah'i$+C8PQQ^z{^zQZ22AA)L^z{{{s   4A$&AA$returnr   c                 &  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w wr?   )
r   queryr   filterr=   allr   r   
Get2Fieldsr)   )r   r=   get_datarE   s       r   get_2_fieldsz'IntegratedMarketingService.get_2_fields>   st     77==!78??@V@_@_ck@klpprC8PQQMUVX	!!00;XVVVs   A!B#&B	Bc                   K   |D ]  }|j                   |j                  z  }|j                         }||d<   t        j                  |      }|j
                  t        dt        j                        c S t        j                  |j
                  || j                        } r| j                  j                  |       d}d}t        ||      }	t        |	       |	j                  |       |	d   }
|	d   }|j                  |
d<   |j                  |d<   |	j                  |       |	j!                          t#        d	|       t        d
t        j$                        S w)Nr   -1r#   r   r   r   r    r   r!   r"   )r&   r'   r(   r   r)   integrated_idr   r
   INTEGRATED_MARKETING_NOTr   update_integrated_marketingr   refreshr   r   r-   r.   r/   INTEGRATED_MARKETING_UPDATE)r   r   reqr3   request_dataupdated_integrated_marketinglast_updated_objr7   r8   r9   r:   r;   s               r   rR   z6IntegratedMarketingService.update_integrated_marketing]   sE    C!22S5I5IIO>>+L/>L+,+B+Q+QR^+_(+99A%$==   6QQ,::,  $ GGOO,- TB
%k:>h'k"+,+,)::)::k"2K@S(2V2VWWs   EErP   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)NrO   r#   r"   )r   delete_integrated_marketingr   r   r
   rQ   INTEGRATED_MARKETING_DELETE)r   rP   deleted_integrated_marketings      r   rZ   z6IntegratedMarketingService.delete_integrated_marketing   sJ     '='Y'YZgimipip'q$+!x7X7XYYS(2V2VWWs   AAN)__name__
__module____qualname__r   r	   r   r   r   IntegratedMarketingCreatedr<   intrB   rM   IntegratedMarketingUpdaterR   rZ    r   r   r   r      s}    ' )9 #QV=^=^8_ #QJ|c |W# W1I W>4Xf>^>^9_ 4XnXc Xr   r   )ostypingr   fastapir   openpyxlr   
sqlalchemyr   sqlalchemy.ormr   app.api.integrated_marketingr   app.dependency.authanticationr	   app.locale.messagesr
   $app.models.main.integrated_marketingr   r   app.utils.common_utilsr   r   app.utils.schemas_utilsr   r   rc   r   r   <module>rp      s7    	  ! "  " / : ( ` L 2JX JXr   