
    jJh                     L    d dl mZmZmZ d dlmZ d dlmZmZm	Z	  G d d      Z
y)    )CustomizedExperience
ExperienceChurnedUsers)get_current_isttime)db_modelappdbc                   $    e Zd Zd Zd Zd Zd Zy)ExperienceServicec                 @   d}|j                  |       g }|j                         D ]u  }t        i 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|d   d|d         }|j                  |       w |S )NaZ  SELECT ex.id, ex.user_id, ex.program_id, ex.start_date, tc.time, ex.timecategory_id, ex.provider_number, ex.type, ex.status, ex.phone, ex.experiment_id, ex.experiment_group_name, ex.created_on FROM experience ex INNER JOIN timecategory tc ON ex.timecategory_id = tc.id WHERE ex.status in ('active', 'pending') AND ex.type in ('pc', 'selfpacedpc')exp_idr   user_id   
program_id   
start_date   time   prev_content_idprev_content_version_idprev_deploy_datetimetimecategory_id   provider_number   experience_type   status   phone	   experiment_id
   experiment_group_name   experience_created_on   )executefetchallr   append)selfcursorSQLactive_experiencesexpexp_objs         F/var/www/dostadmin/dostadmin/services/experience/experience_service.pyget_active_experiencesz(ExperienceService.get_active_experiences   sH   / 	& 	s??$C*c!fs1v !#a& !#a&	
 CF &t .t +D &s1v &s1v &s1v c!f SV $SW ,SW  ,SW!G( %%g.+ %. "!    c                    |dd  }t         j                  j                  |t         j                  j                  t         j                  j
                  g      }|r|S t         j                  j                  |t         j                  j                  g      }|r|S t         j                  j                  |t         j                  j                  gd d      }|r-t        j                  j                  |j                        }|r|S t         j                  j                  |t         j                  j                  t         j                  j                  t         j                  j                  g      }|S )Nidesc)r   query!find_experience_with_phone_statusStatusACTIVEPENDINGDND_WAITCHURNEDr   (get_active_churned_user_by_experience_ididfind_experience_with_phoneType	PHONECASTWHATSAPPSELFPACEDPC)r,   user_number
user_phone
experiencechurned_users        r2   check_for_existing_experiencez/ExperienceService.check_for_existing_experience7   s5    &
%%GG!!((!!))

 %%GG!!**

 %%GG**223T6

 '--VVL !!%%@@))((++

 r4   c                 |   t        |j                  |j                  |j                  |j                  |t               j                         t         j                  j                  |j                  |j                  	      }t        j                  j                  |       t        j                  j                          |S )N)	r   r!   language_idr   r   r   r   r   type)r   r   r!   rK   r   r   dater9   r:   r   rL   r	   sessionaddcommit)r,   previous_experiencenew_program_idrG   s       r2   .create_new_experience_from_previous_experiencez@ExperienceService.create_new_experience_from_previous_experiencee   s      '//%+++77/??%*,113$$++/??$))


 	

z"


r4   c                     t         j                  j                  j                  t        j
                  d         }| j                  ||      }|S )N DEFAULT_MISSED_CALL_PROGRAM_NAME)r   Programr7   find_program_id_with_namer   configrS   )r,   rG   default_missedcall_program_idnew_experiences       r2   #create_new_experience_for_DND_usersz5ExperienceService.create_new_experience_for_DND_usersx   sN    ""<<

=> 	&
 LL5
 r4   N)__name__
__module____qualname__r3   rI   rS   r[    r4   r2   r   r      s    ."`,\&	r4   r   N)dostadmin.db_modelr   r   r   utils.helpers.helpersr   	dostadminr   r   r	   r   r_   r4   r2   <module>rc      s     M M 5 ' '{ {r4   