
    jJh
                         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 d dlmZ  G d de      Z G d	 d
eej                        Zy)    )absolute_import)Query)db)and_desc)replace_chars)TimestampMixinc                        e Zd Zd Zd ZddZy)ChurnedUsersQueryc                 b    | j                  t        j                  |k(        j                         S N)filterChurnedUsersidfirst)selfchurned_user_ids     6/var/www/dostadmin/dostadmin/db_model/churned_users.pyget_details_by_idz#ChurnedUsersQuery.get_details_by_id   s#    {{<??o=>DDFF    c                     | j                  t        j                  |k(  t        j                  j	                  d             j                         S r   )r   r   experience_idend_dateis_r   )r   exp_ids     r   (get_active_churned_user_by_experience_idz:ChurnedUsersQuery.get_active_churned_user_by_experience_id   s>    {{&&&0!!%%d+
 %'	r   Nc                    |<| j                  t        j                  j                  d             j	                         S | j                  t        j                  j                  d       t        j
                  |k(        j	                         S r   )r   r   r   r   allexperience_type)r   r   s     r   /get_all_active_churned_users_by_experience_typezAChurnedUsersQuery.get_all_active_churned_users_by_experience_type   sm    ";;|4488>?CCEE{{!!%%d+((O;
 #%	r   r   )__name__
__module____qualname__r   r   r     r   r   r   r   
   s    Gr   r   c                      e Zd ZdZeZ G d d      Z 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j                   ej                  d      d	      Z ej                  ej"                        Z ej                  ej"                  d
      Z ej                   ej                  d            Z ej                  ej                   ej                  d            Z ej                   ej                  d            Z ej.                  dd d      Z ej.                  dd d      Z ej.                  dd d      Zd Zed        Zy)r   churned_usersc                       e Zd ZdZdZdZy)ChurnedUsers.PreviousStatusactivependingchurnedN)r!   r"   r#   ACTIVEPENDINGCHURNEDr$   r   r   PreviousStatusr(   "   s    r   r/   T)primary_keyzusers.idzexperience.id   F)nullable2   )uniquez
program.idUserzChurnedUsers.user_id == User.id)backrefprimaryjoin
Experiencez+ChurnedUsers.experience_id == Experience.idProgramz%ChurnedUsers.program_id == Program.idc                    | j                  t        t        j                  t	        |      k(  t        j
                  j                  d                   j                  t        t        j                              j                         }|S r   )r   r   r   phoner   r   r   order_byr   
start_dater   )r   r;   churned_users      r   find_churned_user_with_phonez)ChurnedUsers.find_churned_user_with_phoneB   sh    KK &&-*>> ))--d3 Xd<2234UW 	 r   c                 N    ||_         t        j                  j                          y r   )r   r   sessioncommit)cls
experiencedates      r   update_churned_user_end_datez)ChurnedUsers.update_churned_user_end_dateO   s    "



r   N)r!   r"   r#   __tablename__r   query_classr/   r   ColumnIntegerr   
ForeignKeyuser_idr   String
user_phoneexperience_statusDater=   r   r   
program_idprovider_numberrelationshipuserrD   programr?   classmethodrF   r$   r   r   r   r      s   #M#K 
 
2::4	0Bbii

MBMM*$=>GBIIbjj-"--*HIM9299R=59J!		)"))B->277#Jryy40Hbii			".O2::}r}}\'BCJbii			".O2??5D
 !AJ
 boo;G  r   r   N)
__future__r   flask_sqlalchemy.queryr   	BaseQuery	dostadminr   
sqlalchemyr   r   utils.helpers.helpersr   dostadmin.mixinsr	   r   Modelr   r$   r   r   <module>r_      s5    & 5  ! / +	 (4>288 4r   