
    jJh                         d dl mZ d dlmZ d dlmZ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
ee
j                        Zy)    )absolute_import)Query)funcCheckConstraint)and_)db)TimestampMixinc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	MessageCampaignQueryc                 "    | j                         S N)allselfs    8/var/www/dostadmin/dostadmin/db_model/messagecampaign.pyget_sms_campaigns_logz*MessageCampaignQuery.get_sms_campaigns_log
   s    xxz    c                     | j                  t        j                  t        j                        |k(        j                         S r   )filterr   DATEMessageCampaigndeploy_datetimer   )r   ip_dates     r   get_sms_campaigns_for_datez/MessageCampaignQuery.get_sms_campaigns_for_date   s.    {{499_%D%DEPQUUWWr   c                 b    | j                  t        j                  |k(        j                         S r   )r   r   idfirst)r   campaign_ids     r   get_sms_campaign_by_idz+MessageCampaignQuery.get_sms_campaign_by_id   s%    {{?--<=CCEEr   c                 b    | j                  t        j                  |k(        j                         S r   )r   r   statusr   )r   r!   s     r   !get_message_campaigns_with_statusz6MessageCampaignQuery.get_message_campaigns_with_status   s%    {{?11V;<@@BBr   c                     | j                  t        t        j                  |k(  t	        j
                  t        j                        |k(              j                         S r   )r   r   r   r!   r   r   r   r   )r   r!   deploy_dates      r   )get_whatsapp_message_with_status_and_datez>MessageCampaignQuery.get_whatsapp_message_with_status_and_date   sI    {{&&&0		/99:kI

 %'	r   c                 b    | j                  t        j                  |k(        j                         S r   )r   r   sidr   )r   r'   s     r   get_wa_message_with_sidz,MessageCampaignQuery.get_wa_message_with_sid   s%    {{?..#56<<>>r   c                 b    | j                  t        j                  |k(        j                         S r   )r   r   
message_idr   )r   sms_ids     r   get_sms_campaigns_with_smsz/MessageCampaignQuery.get_sms_campaigns_with_sms!   s%    {{?55?@DDFFr   N)
__name__
__module____qualname__r   r   r   r"   r%   r(   r,    r   r   r   r   	   s)    XFC?Gr   r   c                      e Zd ZdZeZ G d d      Z G d d      Z G d d      Z e	j                  e	j                  d	      Z e	j                   e	j                  d
      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      d      Z e	j                   e	j                  d
      d      Z e	j                   e	j                  d
      d      Z e	j                  e	j*                  d      Z e	j                  e	j*                        Z e	j                   e	j                  d      d      Z e	j                   e	j                  d            Z e	j                   e	j                  d      d      Z e	j                   e	j                  d            Z e	j                   e	j                  d            Z e	j                  e	j*                        Z e	j                   e	j                  d            Z e	j                   e	j                  d            Z e	j                   e	j                  d            Z  e! e"e      jG                         du d      i fZ$d Z%d Z&e'd        Z(y)r   messagecampaignc            
       z    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZedfedfedfedfedfedfe	dfe
dfedff	Zy)MessageCampaign.Status	scheduledsentfailed
failed_dndqueuedsending	submittedfailed_systemfailed_outofwindowfailed_invalidwaread	delivereddeleted	ScheduledSentFailedz
Failed DNDQueuedSending	SubmittedzFailed SystemzFailed Out of WindowN)r-   r.   r/   	SCHEDULEDSENTFAILED
FAILED_DNDQUEUEDSENDING	SUBMITTEDFAILED_SYSTEMFAILED_OUTOFWINDOWFAILED_INVALIDWAREAD	DELIVEREDDELETEDCHOICEr0   r   r   Statusr4   *   s    	!
	'1-	 $6NX&Xi $O,!78

r   rV   c                   $    e Zd ZdZdZedfedffZy)MessageCampaign.ScheduledBycron_regular	ui_manualzCron Regularz	UI ManualN)r-   r.   r/   CRON_REGULAR	UI_MANUALrU   r0   r   r   ScheduledByrX   E   s%    %	 >*$
r   r]   c                       e Zd ZdZdZedffZy)MessageCampaign.WAPhone911171279658911171279788zWhatsapp Turn AccountN)r-   r.   r/   WA_1_INFOBIP	WA_2_TURNrU   r0   r   r   WAPhoner_   N   s    %"	568r   rd   T)primary_key   F)nullablezexperience.idzusers.idz
message.id   2   i  i  check_provider_number_isdigit)namec                     dt        | j                        z   dz   t        | j                        z   dz   | j                  z   S )Nz
 SMSCampaign: id_ z, time: z
, Status: )strr   r   r!   r   s    r   __repr__zMessageCampaign.__repr__n   sO    "$''l $&&'( 	
 kk	
r   c                     || _         || _        || _        || _        || _        t
        j                  j                          |S r   )r'   r!   detailed_statusdetailed_status_code	sent_timer   sessioncommit)r   r'   r!   rp   rq   rr   s         r   "update_sms_campaign_after_callbackz2MessageCampaign.update_sms_campaign_after_callbackx   s>     .$8!"


r   c                 n   |j                  d      }|r!|d   j                  d      }t        j                  j                  |      }|r|d   j                  d      }|t        j                  j
                  k(  rH|j                  t        j                  j                  t        j                  j                  fvr[||_        nS|t        j                  j                  k(  r/|j                  t        j                  j                  fvr||_        n||_        t        j                  j                          y y y )Nstatusesr   r   r!   )getr   queryr(   rV   rI   r!   rR   rS   r   rs   rt   )cls
event_datastatus_notificationr*   message_campaignr!   s         r   update_message_statusz%MessageCampaign.update_message_status   s   (nnZ8,Q/33D9J.44LLZX,Q/33H=_33888'..'..33'..887  39(/55???'..7M7M7R7R6SS28(/.4$+

!!#   r   N))r-   r.   r/   __tablename__r   query_classrV   r]   rd   r   ColumnIntegerr   Stringrk   
ForeignKeyexperience_iduser_idr*   provider_numberuser_numberDateTimer   attempted_timestampscheduled_byr'   r!   rp   rq   rr   uri	directionparamsr   rm   isdigit__table_args__rn   ru   classmethodr~   r0   r   r   r   r   %   s\   %M&K
 
6
 
9 9 
2::4	0B299YRYYr]U3DBIIbjj-"--*HIMbii

MBMM*$=>G2::}r}}\'BUSJbii			">O"))IBIIbME:Kbiie<O#"))BKK0299YRYYr]U;L
"))IBIIbM
"CRYYyryy}u5Fbii			$0O$299YRYYr]3		"++&I
"))IBIIdO
$C		)"))B-(IRYYyryy'F 	 ((*d29X	
 		N
	 $ $r   r   N)
__future__r   flask_sqlalchemy.queryr   	BaseQuery
sqlalchemyr   r   r   	dostadminr   dostadmin.mixinsr	   r   Modelr   r0   r   r   <module>r      s9    & 5 ,   +G9 G8r$nbhh r$r   