
    kh                     0    d dl mZ d dlmZ  G d d      Zy)    )CategoryModel)datetimec                   8    e Zd Zd Zd	dZd Zd Zd Zd Zd Z	y)
CategoryClassc                     || _         y )N)db)selfr   s     JC:\Users\jesus\berger_seidle_backend\app\backend\classes\category_class.py__init__zCategoryClass.__init__   s	        c                 <   	 | j                   j                  t        j                  t        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]1  }|j                  |j                  |j
                  |j                  d3 }}|||||dS |j                         }|D cg c]1  }|j                  |j                  |j
                  |j                  d3 }}|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categorypublic_namecolor)total_itemstotal_pagescurrent_pageitems_per_pagedata)r   queryr   r   r   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CategoryClass.get_all   s   4	A!$$!**!--!''	 -**+  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ #'#(
 	 #++ ( 1 1#+#7#7%^^	$ #( #( $/#.$(&4+  yy{ #'#(
 	 #++ ( 1 1#+#7#7%^^	$ #( #( '&3#($#(  	AFM%-@@	AsN   BE8 !:E8 E8  6E.	E8  E8 46E3*E8 .
E8 8	FFFFc                    	 | j                   j                  t        j                  t        j                  t        j
                  t        j                        j                  t        j                        }|D cg c]1  }|j                  |j                  |j
                  |j                  d3 }}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'   r(   r)   s         r
   get_listzCategoryClass.get_list?   s    	A!$$!**!--!''	 -001  #'(
 	 #++ ( 1 1#+#7#7%^^	  (O (  (  	AFM%-@@	As0   A7B: 96B5/B: 5B: :	CCCCc                 (   | j                   j                  t              j                  t        j                  |k(        j                         }|sy	 |j                  |_        |j                  |_        |j                  |_        t        j                         |_        | j                   j                          | j                   j                  |       y# t        $ r4}| j                   j                          t!        |      }d|dcY d }~S d }~ww xY w)Nr   zCategory updated successfullyr   r   )r   r   r   filterr   one_or_noner   r   r   r   utcnowupdated_datecommitrefreshr$   rollbackr%   )r	   r   	form_dataexisting_categoryr(   r)   s         r
   updatezCategoryClass.updateZ   s     GGMM-8??@P@PTV@VWcce "	A)2););&,5,A,A)&/oo#-5__->*GGNNGGOO-.2 	AGGFM%-@@	As   BC 	D)DDDc                    	 t        |j                  |j                  |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   r   r   
added_dateu#   Categoría registrada exitosamente.)r   category_idr   r   )r   r   r   r   r   r0   r   addr2   r3   r   r$   r4   r%   )r	   category_inputsnew_categoryr(   s       r
   storezCategoryClass.storen   s    	:((11+77%++#??,	L GGKK%GGNNGGOOL) @+ 
  	:GG%#a&99	:s   BB   	C)'CCCc                    	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                        j                  t        j                  |k(        j                         }|rM|j                  |j                  |j
                  |j                  |j                  j                  d      d}d|iS ddiS # t        $ r}dt        |      icY d }~S d }~ww xY w)Nz%Y-%m-%d %H:%M:%S)r   r   r   r   r9   category_datar   z3No se encontraron datos para el campo especificado.)r   r   r   r   r   r   r   r9   r.   firststrftimer$   r%   )r	   r   
data_queryr@   r(   s        r
   getzCategoryClass.get   s    	%  &&))##(( f]%%+,UUW  $-- * 3 3#-#9#9'--","7"7"@"@AT"U! (77  !VWW 	%SV$$	%s$   C!C( $C( (	D1D=DD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   r.   r   rA   deleter2   r$   r%   )r	   r   r   r(   r)   s        r
   rG   zCategoryClass.delete   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,   r7   r>   rD   rG    r   r
   r   r      s)    5AnA6A(:,%6-r   r   N)app.backend.db.modelsr   r   r   rL   r   r
   <module>rN      s    / f- f-r   