
    jJh%                     H    d dl mZmZ d dlmZmZ d dlmZmZ  G d d      Z	y)    )db
app_logger)PreCalculatedUserCampaignDataCampaign)get_current_isttimeis_current_date_timestampc                   *    e Zd Zd Zd Z	 	 ddZd Zy)PreCalculatedCampaignServicec                     t        |d      }t        j                  j                  |       t        j                  j	                          |S )NT)experience_idis_eligible_to_call)r   r   sessionaddcommit)selfr   new_campaign_datas      S/var/www/dostadmin/dostadmin/services/scheduling/pre_calculated_campaign_service.pyadd_new_experiencez/PreCalculatedCampaignService.add_new_experience   s;    9'T
 	

()


      c           
      :   dddddddddd	ddd
dddddddddddddddd}|j                  d      }|j                  d      }|y t        j                  j                  |      }|s| j	                  |      }||vry 	 |j                  d      ~|j                  d      '|j                  ||   d   |j                  d             |j                  d      '|j                  ||   d   |j                  d             |j                  d      '|j                  ||   d   |j                  d             |j                  d       '|j                  ||   d   |j                  d              |j                  d!      '|j                  ||   d   |j                  d!             |j                  d"      '|j                  ||   d#   |j                  d"             t               |_        t        j                  j                          y t        j                  |j                  d            }|j                  ||   d#   |       t        j                  j                          y # t        $ r%}t        j                  d$| d%|        Y d }~y d }~ww xY w)&Nprevious_regular_campaign_idprevious_campaign_name!previous_regular_call_deploy_timeprevious_content_idprevious_content_version_id previous_regular_campaign_status)previous_campaign_idr   previous_call_deploy_timer   r   previous_campaign_status previous_missed_call_campaign_id previous_missed_call_deploy_time$previous_missed_call_campaign_statusprevious_nudge_campaign_idprevious_nudge_campaign_nameprevious_nudge_call_deploy_timeprevious_nudge_content_id!previous_nudge_content_version_idprevious_nudge_campaign_statusprevious_blast_campaign_idprevious_blast_campaign_nameprevious_blast_call_deploy_timeprevious_blast_content_id!previous_blast_content_version_id#previous_blast_call_campaign_status)cron_regularcron_missed_call
cron_nudge	ui_manualr   scheduled_byexotel_statuscampaign_idr   campaign_namedeploy_datetimer   
content_idcontent_version_idcampaign_statusr   zMPre Calculated Campaign Service: Error while updating details for experience z. Exception: )getr   queryget_data_by_experience_idr   __setattr__r   call_details_for_dater   r   r   r   &get_campaign_status_from_exotel_status	Exceptionr   error)r   campaign_datamappingr   r3   pre_calculated_campaign_datacall_statusrB   s           r   (update_pre_calculated_user_campaign_datazEPreCalculatedCampaignService.update_pre_calculated_user_campaign_data   s    )G*B-P'</L,N )K*B-O'</L,R! )E*H-N'B/R,L )E*H-N'B/R,Q3!
F &))/:$((8 )//II-X 	% ,+/+B+B=+Q(w&3	  19 $$]3?0<<-.DE%))-8 !$$_5A0<<-.FG%))/: !$$%67C0<<-.IJ%))*;<
 !$$\2>0<<-.CD%)),7
 !$$%9:F0<<-.KL%))*>?
 !$$%67C0<<-.HI%))*;< () -B 

!!#&MM!%%o6 -88L)*DE{ 

!!# 	_`m_nn{  }B  |C  D 	s    FI, AI, ,	J5JJc                    |j                   |j                  |j                  |j                  t        j
                  j                  d}|j                  d      |j                  |d<   |j                  d      |S |j                  d      *|j                  rh|j                  |j                  d      k\  rJ|j                  |d<   |j                  |d<   t        j
                  j                  |d<   |j                  |d<   |rd|j                  i}|s>t        |j                        }|r|j                  d      |j                  |j                  d      kD  rY|j                  |d<   |j                  |d<   |j                  |d<   |j                   |d<   t        j
                  j"                  |d<   t        |j$                        }|r|j                  d      |j$                  |j                  d      kD  rY|j&                  |d<   |j(                  |d<   |j$                  |d<   |j*                  |d<   t        j
                  j,                  |d<   |S )N)r5   statusdeploy_timer6   r3   rJ   r5   rI   r3   r6   )r   r   r   r   r   ScheduledByCRON_REGULARr;   r!   r    r"   CRON_MISSED_CALLr%   r   r#   r(   r$   
CRON_NUDGEr+   r)   r.   r*   	UI_MANUAL)r   pre_calculated_user_campaignonly_content_callonly_non_content_calldatais_current_date_calls         r   get_previous_campaign_dataz7PreCalculatedCampaignService.get_previous_campaign_datav   s    8TT2SS7YY9PP$00==
 88M"* -MM  88M"*K88M"*(II,MMxx&'
 -MM 
 -QQ  $,#7#7#H#HD  -MM  !;[[D !#<,LL$  $'//OO((=)*
 1KK !
 1OO 
 1PP !
 1MM # (0';';'F'F^$#<,LL$  $'//OO((=)*
 1KK !
 1TT 
 1PP !
 1MM # (0';';'E'E^$r   c                 6    i }|D ]  }|||j                   <    |S )N)r   )r   users_campaign_data_listusers_campaign_data_dictuser_campaign_datas       r   get_user_campaign_data_dictz8PreCalculatedCampaignService.get_user_campaign_data_dict   s3    #% ": # %"00 #;
 ('r   N)FF)__name__
__module____qualname__r   rG   rU   rZ    r   r   r
   r
      s"    !eT  #	Zx(r   r
   N)
	dostadminr   r   dostadmin.db_modelr   r   utils.helpers.helpersr   r   r
   r^   r   r   <module>rb      s    $ F PT( T(r   