
    /i%<                     4    d dl m Z  d dlmZmZ  G d d      Zy)    )datetime)MessageModelCustomerModelc                   8    e Zd Zd Zd	dZd Zd Zd Zd Zd Z	y)
MessageClassc                     || _         y )N)db)selfr	   s     J/var/www/pie360backend.cl/public_html/app/backend/classes/message_class.py__init__zMessageClass.__init__   s	        Nc                 P
   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  
      j                  t        t        j                  t        j                  k(        j                  t        j                   dk(  t        j                  dk(        }|dk(  r$|"|j                  t        j                  |k(        }|rP|j#                         r@|j                  t        j                  j%                  d|j#                          d            }|"|j                  t        j
                  |k(        }|j'                  t        j                  j)                               }|dkD  r|j+                         }|dkD  r||z   dz
  |z  nd}	|dk(  rdd||g dS |dk  s||	kD  r||	||g dS |j-                  |dz
  |z        j/                  |      j1                         }
g }|
D ]=  }| j                   j                  t              j                  t        j                  |j                  k(  t        j                  dk(  t        j                   dk(        j3                         }|j5                  |j                  |j                  |j
                  |j                  |j                  |rdnd|j                  |j                  |j                  |j                  r|j                  j7                  d      nd |j                  r|j                  j7                  d      nd d       @ ||	|||dS |j1                         }
g }|
D ]=  }| j                   j                  t              j                  t        j                  |j                  k(  t        j                  dk(  t        j                   dk(        j3                         }|j5                  |j                  |j                  |j
                  |j                  |j                  |rdnd|j                  |j                  |j                  |j                  r|j                  j7                  d      nd |j                  r|j                  j7                  d      nd d       @ |S # t8        $ r}t;        |      }d|d	cY d }~S d }~ww xY w)
Nr      %   )total_itemstotal_pagescurrent_pageitems_per_pagedata%Y-%m-%d %H:%M:%S)idcustomer_idmessage_type_idresponse_idmessage_response_idmessage_answered_idsubjectmessagecompany_name
added_dateupdated_dateerrorstatusr   )r	   queryr   r   r   r   r   r   r   r   r!   r"   r   r    joinfilterdeleted_status_idstriplikeorder_bydesccountoffsetlimitallfirstappendstrftime	Exceptionstr)r
   pager   r   r   r   rol_idr&   r   r   r   serialized_datar   	has_replyeerror_messages                   r   get_allzMessageClass.get_all   sp   v	AGGMM((,,((00$$$$''))** d|77=;K;KKf..!3((A- & {{6\%=%=%LM 7==?\%9%9%>%>7==?BSST?U%VW *\%A%A_%TUNN<#:#:#?#?#ABEax#kkmVadeVe{^;a?NRkl!#'('((,*8 "  !8tk1'2'2(,*8 "  ||TAX$?@FF~VZZ\"$# G $l ; B B$88GJJF$00A5$66!;! eg	  $**%jj'.':':+2+B+B'.':':/6/J/J4=q1#*??#*??(/(<(<ZaZlZlg&8&8&A&ABU&Vrv^e^r^r(<(<(E(EFY(Zx|, . $/#.$(&4+  yy{"$# G $l ; B B$88GJJF$00A5$66!;! eg	  $**%jj'.':':+2+B+B'.':':/6/J/J4=q1#*??#*??(/(<(<ZaZlZlg&8&8&A&ABU&Vrv^e^r^r(<(<(E(EFY(Zx|, , '& 	AFM%-@@	As2   HT T *F T +ET 	T%T T% T%c                    	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  	      j                  t        j                  dk(        j                  t        j                        }|j                         }|D cg c]  }|j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  r|j                  j!                  d      nd|j                  r|j                  j!                  d      ndd	 }}|S c c}w # t"        $ r}t%        |      }d|dcY d}~S d}~ww xY w)u7   Retorna todos los messages sin paginación ni búsquedar   r   N)	r   r   r   r   r   r   r   r!   r"   r#   r$   )r	   r&   r   r   r   r   r   r   r   r   r!   r"   r(   r)   r,   r1   r4   r5   r6   )r
   r&   r   r   r9   r;   r<   s          r   get_all_listzMessageClass.get_all_list   sn   	AGGMM((,,((00$$$$''))
 f\33q89((<??:S  99;D "
#  jj&22#*#:#:&22'.'B'B"??"??RYRdRdg0099:MNjnV]VjVj 4 4 = =>Q Rpt
  
#O 
# #"
#  	AFM%-@@	As1   C2F$ 4B'FF$ F$ $	G-G<GGc                 r   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  
      j                  t        t        j                  t        j                  k(        j                  t        j                  |k(  t        j                   dk(        j#                         }|sdddS |j                  |j                  |j
                  |j                  |j                  r|j                  nd|j                  |j                  |j                  |j                  r|j                  j%                  d      nd |j                  r|j                  j%                  d      nd d
}|j                  dk(  r| j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  
      j                  t        t        j                  t        j                  k(        j                  t        j                  |j                  k(  t        j                  dk(  t        j                   dk(        j#                         }|r|j                  |j                  |j
                  |j                  |j                  r|j                  nd|j                  |j                  |j                  |j                  r|j                  j%                  d      nd |j                  r|j                  j%                  d      nd d
|d<   |S d |d<   |S |j                  dk(  r|j                  r| j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  
      j                  t        t        j                  t        j                  k(        j                  t        j                  |j                  k(  t        j                   dk(        j#                         }|r|j                  |j                  |j
                  |j                  |j                  r|j                  nd|j                  |j                  |j                  |j                  r|j                  j%                  d      nd |j                  r|j                  j%                  d      nd d
|d<   |S d |d<   |S d |d<   |S # t&        $ r}t)        |      }d|dcY d }~S d }~ww xY w)	Nr   r#   No data foundr$   r   )
r   r   r   r   r   r   r   r    r!   r"   r   response_message)r	   r&   r   r   r   r   r   r   r   r   r!   r"   r   r    r'   r(   r)   r2   r4   r5   r6   )r
   r   r   resultreply_messageoriginal_messager;   r<   s           r   getzMessageClass.get   s   r	A77==((,,((00$$$$''))** d|77=;K;KKf2%..!3 eg! $ ")oFF gg#//#'#7#7#//CGC[C[t'?'?ab<<<< $ 1 1OSdoo667JKdhSWSdSd 1 1 : :;N OjnF 1$ $ OO ,, 00 ,, 44 (( (( ++ --!..! $!<#;#;}?O?O#O& 44? ,,1 22a7 %'# & !+..'4'@'@+8+H+H'4'@'@TaTuTu}/P/P{|#0#8#8#0#8#8(5(B(B`m`x`xm&>&>&G&GH[&\  Cdqd~d~(B(B(K(KL_(`  EI2F-.h MO 26F-.N MK !!Q&4+C+C#'77== OO ,, 00 ,, 44 (( (( ++ --!..$ $!<#;#;}?O?O#O& OOt'?'?? 22a7 %'! !$ $.11'7'C'C+;+K+K'7'C'CWgW{W{/?/S/S  BC#3#;#;#3#;#;(8(E(Ecsc~c~&6&A&A&J&JK^&_  EIgw  hE  hE(8(E(E(N(NOb(c  KO2F-." M	 26F-. M .2)*M 	AFM%-@@	As>   D)X ,KX 4X ;H	X X X 	X6X1+X61X6c                 h   	 t        |j                  d      |j                  d      |j                  d      |j                  d      d|j                  d      |j                  d      t        j                         t        j                         	      }| j                  j                  |       | j                  j                          | j                  j                  |       d	d
|j                  dS # t        $ r4}| j                  j                          t        |      }d|dcY d }~S d }~ww xY w)Nr   r   r   r   r   r   r   )	r   r   r   r   r)   r   r   r!   r"   successzMessage saved successfully)r%   r   r   r#   r$   )r   rF   r   nowr	   addcommitrefreshr   r5   rollbackr6   )r
   message_inputsnew_messager;   r<   s        r   storezMessageClass.store  s    	A&*..}= . 2 23D E*..}=$2$6$67L$M"#&**95&**95#<<>%\\^
K GGKK$GGNNGGOOK('4PXcXfXfgg 	AGGFM%-@@	As   C1C4 4	D1=)D,&D1,D1c                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|r?d|_        t        j                         |_	        | j                   j                          dddS dddS # t        $ r4}| j                   j                          t        |      }d|dcY d }~S d }~ww xY w)Nr   rH   zMessage deleted successfullyr$   r#   rA   )r	   r&   r   r(   r   r2   r)   r   rI   r"   rK   r5   rM   r6   )r
   r   r   r;   r<   s        r   deletezMessageClass.delete2  s    	A77==.55loo6KLRRTD)*&$,LLN! "+8VWW")oFF 	AGGFM%-@@	As$   BB B 	C)CCCc                 "   	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS |j                         D ]  \  }}|	t        |||        t        j                         |_
        | j                   j                          | j                   j                  |       dddS # t        $ r4}| j                   j                          t        |      }d|dcY d }~S d }~ww xY w)Nr#   rA   r$   rH   zMessage updated successfully)r	   r&   r   r(   r   one_or_noneitemssetattrr   rI   r"   rK   rL   r5   rM   r6   )r
   r   rN   existing_messagekeyvaluer;   r<   s           r   updatezMessageClass.updateB  s    	A#ww}}\:AA,//UWBWXddf#")oFF,224 :
U$,c59: -5LLN)GGNNGGOO,-'4RSS 	AGGFM%-@@	As+   AC C /A!C 	D)D	D	D)r   
   NNNN)
__name__
__module____qualname__r   r=   r?   rF   rP   rR   rZ    r   r   r   r      s0    wAr!AFsAjA2A Ar   r   N)r   app.backend.db.modelsr   r   r   r_   r   r   <module>ra      s     =SA SAr   