
    Ei                     f    S r SSKJr  SSKJrJr  SSKJr  SSKJr  SSK	J
r
  SS jr " S S	5      rg
)u-   Lógica para support_areas (áreas de apoyo).    )datetime)OptionalAny)case)Session)SupportAreaModelc                     U c  g [        U [        5      (       a  U $ [        U S5      (       a  U R                  U5      $ [        U 5      $ )Nstrftime)
isinstancestrhasattrr
   )vfmts     XC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\classes\support_area_class.py	_date_strr   
   s@    y!Sq*zz#q6M    c            	           \ rS rSrS\4S jrSS\S\S\\   S\	4S	 jjr
S
\S\	4S jrS\S\	4S jrS
\S\S\	4S jrS
\S\	4S jrSrg)SupportAreaClass   dbc                     Xl         g )Nr   )selfr   s     r   __init__SupportAreaClass.__init__   s    r   Npageitems_per_pagesupport_areareturnc           	          U R                   R                  [        5      R                  [        R                  R                  S5      5      nU(       a^  [        U5      R                  5       (       a@  UR                  [        R                  R                  SUR                  5        S35      5      nUR                  [        [        R                  R                  S5      S4SS9[        R                  R                  5       5      nUS:  a  US:  a  UR                  5       nXR-   S-
  U-  =(       d    SnUS:  d  X:  a  UUUU/ S.$ UR                  US-
  U-  5      R                  U5      R!                  5       nU Vs/ s HD  nUR"                  UR                  [%        UR&                  5      [%        UR(                  5      S.PMF     n	nUUUUU	S.$ UR!                  5       nU Vs/ s HD  nUR"                  UR                  [%        UR&                  5      [%        UR(                  5      S.PMF     sn$ s  snf s  snf ! [*         a  n
S[        U
5      / S	.s Sn
A
$ Sn
A
ff = f)
u5   Lista áreas de apoyo activas (deleted_date is None).N%   r   )else_)total_itemstotal_pagescurrent_pager   dataidr   
added_dateupdated_dateerrorstatusmessager'   )r   queryr   filterdeleted_dateis_r   stripr   likeorder_byr   asccountoffsetlimitallr)   r   r*   r+   	Exception)r   r   r   r   r0   r$   r%   rowsrr'   es              r   get_allSupportAreaClass.get_all   s<   0	FGGMM"23::;K;X;X;\;\]a;bcEL 1 7 7 9 9%5%B%B%G%G!LL^L^L`KaabHc%deNN&3377=qAK --113E axNQ.#kkm*;a?NRWVW!8t1'2'2(,*8 "  ||TAX$?@FF~VZZ\ " "  dd()&/&=(1!..(A	 "   $/#.$(&4   99;D  A $$$%NN"+ALL"9$-ann$=	  #"  	F%#a&"EE	FsJ   EI 	8I AH8	I I *AH=5I 8
I 
I%I I% I%r)   c                     U R                   R                  [        5      R                  [        R                  U:H  [        R
                  R                  S5      5      R                  5       nU(       d  SSSS.$ SUR                  UR                  [        UR                  5      [        UR                  5      S.S.$ ! [         a  nS[        U5      SS.s SnA$ SnAff = f)u!   Obtiene un área de apoyo por id.Nr,   Registro no encontrado.r-   successr(   )r.   r'   )r   r0   r   r1   r)   r2   r3   firstr   r   r*   r+   r<   r   r   r)   rowr?   s       r   getSupportAreaClass.getL   s    	H./(++r13C3P3P3T3TUY3Z[ 
 ")6OY]^^#&&$'$4$4"+CNN";$-c.>.>$?	   	H%#a&$GG	Hs%   A7B> :AB> >
C!CC!C!r'   c                     UR                  S5      =(       d    SR                  5       =(       d    Sn[        R                  " 5       n[	        UUUSS9nU R
                  R                  U5        U R
                  R                  5         U R
                  R                  U5        SSUR                  S.$ ! [         a2  nU R
                  R                  5         S[        U5      S	.s SnA$ SnAff = f)
u   Crea un área de apoyo.r    N)r   r*   r+   r2   rD   u   Área de apoyo creada.r.   r/   r)   r,   r.   r/   )rH   r4   r   nowr   r   addcommitrefreshr)   r<   rollbackr   )r   r'   r   rN   rG   r?   s         r   storeSupportAreaClass.storeb   s    	: HH^4:AACKtL,,.C") !	C GGKKGGNNGGOOC '4LTWTZTZ[[ 	:GG%#a&99	:s   B1B4 4
C0>'C+%C0+C0c                 >    U R                   R                  [        5      R                  [        R                  U:H  5      R                  5       nU(       d  SSS.$ SU;   a*  US   =(       d    SR                  5       =(       d    SUl        [        R                  " 5       Ul
        U R                   R                  5         U R                   R                  U5        SSUS	.$ ! [         a2  nU R                   R                  5         S[        U5      S.s SnA$ SnAff = f)
u#   Actualiza un área de apoyo por id.r,   rC   rM   r   rK   NrD   zRegistro actualizado.rL   )r   r0   r   r1   r)   rE   r4   r   r   rN   r+   rP   rQ   r<   rR   r   )r   r)   r'   rG   r?   s        r   updateSupportAreaClass.updateu   s    	:''-- 01889I9L9LPR9RSYY[C")6OPP%$($8$>B#E#E#G#O4 '||~CGGNNGGOOC '4KSUVV 	:GG%#a&99	:s%   AC  BC   
D*'DDDc                     U R                   R                  [        5      R                  [        R                  U:H  5      R                  5       nU(       d  SSS.$ [        R                  " 5       Ul        UR                  Ul	        U R                   R                  5         SSUS.$ ! [         a2  nU R                   R                  5         S[        U5      S.s SnA$ SnAff = f)u   Borrado lógico (deleted_date).r,   rC   rM   rD   zRegistro eliminado.rL   N)r   r0   r   r1   r)   rE   r   rN   r2   r+   rP   r<   rR   r   rF   s       r   deleteSupportAreaClass.delete   s    
	:''-- 01889I9L9LPR9RSYY[C")6OPP'||~C"//CGGNN'4IQSTT 	:GG%#a&99	:s%   AB& A
B& &
C"0'CC"C"r   )r   d   N)__name__
__module____qualname____firstlineno__r   r   intr   r   r   r@   rH   dictrS   rV   rY   __static_attributes__ r   r   r   r      s    7 2FC 2FS 2FhWZm 2Fgj 2FhHc Hc H,:$ :3 :&: :D :S : : : :r   r   N)z%Y-%m-%d %H:%M:%S)__doc__r   typingr   r   
sqlalchemyr   sqlalchemy.ormr   app.backend.db.modelsr   r   r   rc   r   r   <module>ri      s(    3     " 2}: }:r   