
    Jh!                     D    d dl mZmZmZ d dlmZ d dlmZ  G d d      Zy)    )
VisitModelCustomerModelConstructionSiteModel)CustomerClass)datetimec                   4    e Zd Zd ZddZddZd Zd Zd Zy)	
VisitClassc                 2    || _         t        |      | _        y )N)dbr   customer)selfr   s     hC:\Users\jesus\OneDrive\Desktop\escritorio\vitrificados_chile_backend\app\backend\classes\visit_class.py__init__zVisitClass.__init__   s    %b)    c                    	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                        j                  t        t        j                  t        j                  k(  d      j                  t        j                        }|dkD  r|j                         }||z   dz
  }|dk  s||kD  rdddS |j                  |dz
  |z        j!                  |      j#                         }|sdddS |D cg c]o  }|j                  |j                  |j
                  |j                  r|j                  j%                  d	      nd |j                  |j                  |j                  d
q }}|||||dS |j#                         }|D cg c]o  }|j                  |j                  |j
                  |j                  r|j                  j%                  d	      nd |j                  |j                  |j                  d
q }}|S c c}w c c}w # t&        $ r}	t)        |	      }
d|
dcY d }	~	S d }	~	ww xY w)NTisouterr      errorInvalid page numberstatusmessageNo data found%Y-%m-%d %H:%M:%Sidsince_visit_date_timeuntil_visit_date_time
added_date	full_namephone	status_idtotal_itemstotal_pagescurrent_pageitems_per_pagedata)r   queryr   r   r   r   r    r   r!   r"   r#   joincustomer_idorder_bycountoffsetlimitallstrftime	Exceptionstr)r   pager(   r*   r%   r&   r)   visitserialized_dataeerror_messages              r   get_allzVisitClass.get_all
   sF   >	AMM4444))!++!''(( mZ%;%;}?O?O%OY]^*--(  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% $/#.$(&4+  yy{  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% '&?#%*#%  	AFM%-@@	AsP   D I :I >I A4I6	I  I A4II 
I 	I9I4.I94I9c                    	 t        |       g }|j                  rJ|j                  t        j                  j	                  d|j                  j                          d             |j                  r,|j                  t        j                  |j                  k(         |j                  r<|j                  t        j                  j	                  d|j                   d              | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                         j#                  t        t        j$                  t        j                  k(  d      j&                  | j)                  t        j                        }|dkD  r|j+                         }||z   dz
  }|dk  s||kD  rdddS |j-                  |dz
  |z        j/                  |      j1                         }|sdd	dS |D 	cg c]o  }	|	j                  |	j                  |	j                  |	j                  r|	j                  j3                  d
      nd |	j                  |	j                  |	j                   dq }
}	|||||
dS |j1                         }|D 	cg c]o  }	|	j                  |	j                  |	j                  |	j                  r|	j                  j3                  d
      nd |	j                  |	j                  |	j                   dq }
}	|
S c c}	w c c}	w # t4        $ r}t7        |      }d|dcY d }~S d }~ww xY w)N%Tr   r   r   r   r   r   r   r   r   r$   )printr!   appendr   ilikelowerr"   addressemailr   r*   r   r   r   r   r    r#   r+   r,   filterr-   r.   r/   r0   r1   r2   r3   r4   )r   search_inputsr5   r(   filtersr*   r%   r&   r)   r6   r7   r8   r9   s                r   searchzVisitClass.searchK   s   H	A- G&&}66<<qAXAXA^A^A`@aab=cde""}22m6I6IIJ$$}22881]=R=R<SST9UVW
MM4444))!++!''(( mZ%;%;}?O?O%OY]^
" *--(  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% $/#.$(&4+  yy{  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% '&?#%*#%  	AFM%-@@	AsP   G0M 3:M .M 2A4L<&	M 0M A4M8M <
M 	M)M$M)$M)c                 ,   	 | j                   j                  |j                  |      }|j                  d      dk7  r|S |d   }t	        ||j
                  |j                  dt        j                               }| j                  j                  |       | j                  j                          | j                  j                  |       d|j                  dS # t        $ r2}| j                  j                          dt        |      d	cY d }~S d }~ww xY w)
Nr   z!Cliente actualizado exitosamente.r,      )r,   r   r   r#   r    z5Visita registrada y cliente actualizado exitosamente.r   visit_idr   r   )r   updater   getr   r   r   r   utcnowr   addcommitrefreshr3   rollbackr4   )r   visit_inputscustomer_update_resultr,   	new_visitr8   s         r   storezVisitClass.store   s    	:%)]]%9%9,//<%X"%))(37ZZ--0?K"'&2&H&H&2&H&H#??,I GGKK	"GGNNGGOOI& R%LL 
  	:GG%#a&99	:s#   ;C BC 	D!'DDDc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS d|_        t        j                         |_	        | j                   j                          | j                   j                  |       t        |j                  d      }| j                   j                  |       | j                   j                          | j                   j                  |       d|j                  dS # t        $ r2}| j                   j!                          dt#        |      dcY d }~S d }~ww xY w)	Nr   zVisita no encontrada.r         )r,   r#   zVisita aceptada exitosamente.rI   )r   r*   r   rC   r   firstr#   r   rM   updated_daterO   rP   r   r,   rN   r3   rQ   r4   )r   r   r6   new_construction_siter8   s        r   acceptzVisitClass.accept   s   	:GGMM*-44Z]]b5HIOOQE%6 
  EO!)!2EGGNNGGOOE"$9!--%!
 GGKK-.GGNNGGOO12 :144 
  	:GG%#a&99	:s%   AD! C
D! !	E*'EEEc                 \   	 | j                   j                  t              j                  t        j                  |k(        j                         }|r6| j                   j                  |       | j                   j                          yy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nsuccessr   zError: )
r   r*   r   rC   r   rY   deleterO   r3   r4   )r   r   r)   r8   r9   s        r   r_   zVisitClass.delete   s    
	-77==,33JMMR4GHNNPDt$  & 	-FM]O,,	-s   BB 	B+B& B+&B+N)r   
   )	__name__
__module____qualname__r   r:   rF   rU   r\   r_    r   r   r	   r	      s&    *?ABIAV:< :F-r   r	   N)app.backend.db.modelsr   r   r   "app.backend.classes.customer_classr   r   r	   rd   r   r   <module>rg      s    R R < ]- ]-r   