
    jh!                     0    d dl mZ d dlmZ  G d d      Zy)    )LocationModel)datetimec                   2    e Zd Zd ZddZd Zd Zd Zd Zy)	LocationClassc                     || _         y )N)db)selfr   s     JC:\Users\jesus\berger_seidle_backend\app\backend\classes\location_class.py__init__zLocationClass.__init__   s	        c                    	 | j                   j                  t        j                  t        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                  |      j                         }|sdddS |D cg c]  }|j                  |j                  d }}|||||dS |j                         }|D cg c]  }|j                  |j                  d }}|S c c}w c c}w # t        $ r}	t        |	      }
d|
dcY d }	~	S d }	~	ww xY w)	Nr      errorzInvalid page numberstatusmessageNo data foundidlocation)total_itemstotal_pagescurrent_pageitems_per_pagedata)r   queryr   r   r   order_bycountoffsetlimitall	Exceptionstr)r	   pager   r   r   r   r   r   serialized_dataeerror_messages              r
   get_allzLocationClass.get_all   s   .	A!$$!** -**+  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ
 #'#(  #++ ( 1 1$ #( #( $/#.$(&4+  yy{
 #'#(  #++ ( 1 1$ #( #(
 '&+#( #(  	AFM%-@@	AsN   B D. :D. >D.  D$"	D. ,D.   D) D. $
D. .	E7EEEc                 X   	 | j                   j                  t        j                  t        j                        j                  t        j                        }|D cg c]  }|j                  |j                  d }}d|iS c c}w # t        $ r}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%   r&   r'   s         r
   get_listzLocationClass.get_list9   s    	A!$$!** -001  #'(  #++ ( 1 1  (O (  (  	AFM%-@@	As0   AB  B;B B 	B)B$B)$B)c                    	 t        |j                  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)N)r   
added_dateu#   Ubicación registrada exitosamente.)r   location_idr   r   )r   r   r   utcnowr   addcommitrefreshr   r"   rollbackr#   )r	   location_inputsnew_locationr&   s       r
   storezLocationClass.storeP   s    	:((11#??,L
 GGKK%GGNNGGOOL) @+ 
  	:GG%#a&99	:s   BB
 
	C'C :C Cc                 \   	 | j                   j                  t        j                  t        j                        j                  t        j                  |k(        j                         }|r|j                  |j                  d}d|iS ddiS # t        $ r}dt        |      icY d }~S d }~ww xY w)Nr   location_datar   z3No se encontraron datos para el campo especificado.)	r   r   r   r   r   filterfirstr"   r#   )r	   r   
data_queryr7   r&   s        r
   getzLocationClass.getd   s    	%  && f]%%+,UUW 
 $-- * 3 3!
 (77  !VWW 	%SV$$	%s$   BB B 	B+B& B+&B+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   r8   r   r9   deleter0   r"   r#   )r	   r   r   r&   r'   s        r
   r>   zLocationClass.deletey   s    
	-77==/66}7G7G27MNTTVDt$  & 	-FM]O,,	-s   BB 	B+B& B+&B+N)r   
   )	__name__
__module____qualname__r   r(   r*   r5   r;   r>    r   r
   r   r      s#    /AbA.:(%*-r   r   N)app.backend.db.modelsr   r   r   rC   r   r
   <module>rE      s    / @- @-r   