
    jJh                         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  G d de      Z G d	 d
      Z G d dee
j                        Zy)    )absolute_import)Query)func)get_current_isttime)db)TimestampMixinc                   2    e Zd Zd Zd ZddZd Zd Zd Zy)	"PreCalculatedUserCampaignDataQueryc                 b    | j                  t        j                  |k(        j                         S N)filterPreCalculatedUserCampaignDataidfirst)self$pre_calculated_user_campaign_data_ids     J/var/www/dostadmin/dostadmin/db_model/pre_calculated_user_campaign_data.pyget_details_by_idz4PreCalculatedUserCampaignDataQuery.get_details_by_id
   s)    {{),,0TT

%'	    c                 b    | j                  t        j                  |k(        j                         S r   )r   r   experience_idr   )r   r   s     r   get_data_by_experience_idz<PreCalculatedUserCampaignDataQuery.get_data_by_experience_id   s(    {{)77=H

%'	r   c                 b    | j                  t        j                  |k(        j                         S r   )r   r   is_eligible_to_callall)r   is_eligibles     r   get_all_records_by_eligibilityzAPreCalculatedUserCampaignDataQuery.get_all_records_by_eligibility   s(    {{)==L

#%	r   c                     t               j                         }| j                  t        j                  t
        j                        |k(        j                         S r   )r   dater   r   DATEr   previous_nudge_call_deploy_timer   r   todays     r   get_today_nudge_callsz8PreCalculatedUserCampaignDataQuery.get_today_nudge_calls   H    #%**,{{II3SST
 #%	r   c                     t               j                         }| j                  t        j                  t
        j                        |k(        j                         S r   )r   r   r   r   r    r   previous_blast_call_deploy_timer   r"   s     r   get_today_blast_callsz8PreCalculatedUserCampaignDataQuery.get_today_blast_calls    r%   r   c                 "    | j                         S r   )r   )r   s    r   get_all_recordsz2PreCalculatedUserCampaignDataQuery.get_all_records'   s    xxzr   N)T)	__name__
__module____qualname__r   r   r   r$   r(   r*    r   r   r
   r
   	   s     


r   r
   c                       e Zd Zd Zy)CustomizedUserCampaignDatac                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        y r   )exp_idphone
program_idlanguage_idtimecategory_idprovider_numberexperience_typeexperience_statuscurrent_content_idcurrent_content_version_idnext_content_idnext_content_version_id)r   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   s                r   __init__z#CustomizedUserCampaignData.__init__,   sa     
$&...!2"4*D'.'>$r   N)r+   r,   r-   r>   r.   r   r   r0   r0   +   s    ?r   r0   c                      e Zd ZdZeZ G d d      Z ej                  ej                  d      Z
 ej                  ej                        Z ej                  ej                   ej                  d      d      Z ej                  ej                        Z ej                  ej                   ej                  d            Z ej                  ej                   ej                  d	            Z ej                  ej                   ej                  d            Z ej                  ej                   ej                  d	            Z ej                  ej                        Z ej                  ej                        Z ej                  ej                        Z ej                  ej                        Z ej                   ej2                  d
            Z ej                   ej2                  d
            Z ej                   ej2                  d
            Z ej                  ej:                        Z ej                  ej:                        Z ej                  ej:                        Z  ej                  ej:                        Z! ej                   ej2                  d            Z" ej                   ej2                  d            Z# ej                   ej2                  d            Z$ ej                   ej2                  d            Z% ej                  ej                   ej                  d            Z& ej                  ej                   ej                  d            Z' ej                  ej                   ej                  d	            Z( ej                  ej                   ej                  d	            Z) ej                  ej                  dd      Z*e+d        Z,e+d        Z-e+d        Z.y)r   !pre_calculated_user_campaign_datac                       e Zd ZdZdZy)$PreCalculatedUserCampaignData.Statusactive	completedN)r+   r,   r-   ACTIVE	COMPLETEDr.   r   r   StatusrB   M   s    	r   rG   T)primary_keyzexperience.id)uniquez
content.idzcontent_version.idd      F0)nullableserver_defaultc                 N    d|_         t        j                  j                          y )NFr   r   sessioncommitclsr@   s     r   mark_non_eligible_to_callz7PreCalculatedUserCampaignData.mark_non_eligible_to_callv   s    @E)=


r   c                 N    d|_         t        j                  j                          y )NTrP   rS   s     r   mark_eligible_to_callz3PreCalculatedUserCampaignData.mark_eligible_to_call{   s    @D)=


r   c                    	 | j                   j                  |      j                         }t        j                  j                  |       t        j                  j                          y# t        $ r}t        |      cY d }~S d }~ww xY w)N)r   T)	query	filter_byr   r   rQ   deleterR   	Exceptionstr)rT   r2   pre_calculated_dataes       r   ,delete_pre_calculated_data_for_experience_idzJPreCalculatedUserCampaignData.delete_pre_calculated_data_for_experience_id   sg    	"%))"5"5F"5"K"Q"Q"SJJ12JJ 	q6M	s   A'A* *	B3
B=BBN)/r+   r,   r-   __tablename__r
   query_classrG   r   ColumnIntegerr   Datecall_details_for_date
ForeignKeyr   Booleanr   previous_content_idprevious_content_version_idtoday_content_idtoday_content_version_idprevious_regular_campaign_id previous_missed_call_campaign_idprevious_blast_campaign_idprevious_nudge_campaign_idStringprevious_campaign_nameprevious_blast_campaign_nameprevious_nudge_campaign_nameDateTimer'    previous_missed_call_deploy_time!previous_regular_call_deploy_timer!    previous_regular_campaign_status$previous_missed_call_campaign_status#previous_blast_call_campaign_statusprevious_nudge_campaign_statusprevious_blast_content_idprevious_nudge_content_id!previous_blast_content_version_id!previous_nudge_content_version_idmax_retry_flagclassmethodrU   rW   r`   r.   r   r   r   r   I   s[   7M4K    
2::4	0B%BIIbgg.BIIbjj-"--*HQUVM#"))BJJ/#"))BJJl0KL"+"))


MBMM"67# !ryy]R]]<-HI(ryy


MBMM"67  $-299RZZ#8 '0ryy'<$!*2::!6!*2::!6&RYYyryy~6#,299YRYYs^#< #,299YRYYs^#< &/bii&<#'0ryy'=$(1		"++(>%&/bii&<#'0ryy2'?$+4299YRYYr]+C(*3"))IBIIbM*B'%.RYYyryy}%=" )		"**mbmmL6Q R )		"**mbmmL6Q R(1		


MBMM"67)% )2		


MBMM"67)% RYYrzzE#NN     r   r   N)
__future__r   flask_sqlalchemy.queryr   	BaseQuery
sqlalchemyr   utils.helpers.helpersr   	dostadminr   dostadmin.mixinsr   r
   r0   Modelr   r.   r   r   <module>r      s@    & 5  5  + D? ?<?NBHH ?r   