Ë
    Âesj¥  ã            
       óf  — d dl Z e j                  j                  d d«       d dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZ d d	lmZmZ d d
lmZ  eddg¬«      Zej3                  ddd¬«       ee«      fde	fd„«       Zej3                  ddd¬«       edd¬«       ee«      fdede	fd„«       Zej;                  dddd¬«       ee«       e ed «      «      fd!ede	d"efd#„«       Zej?                  dd$d%¬«       edd¬«      d ee«       e ed&«      «      fded!ede	d"efd'„«       Z ejC                  dd(d)¬«       edd*¬«       ee«       e ed+«      «      fdede	d"efd,„«       Z"ej?                  d-d.d/¬«       edd¬«       ee«       e ed0«      «      fdede	d"efd1„«       Z#y)2é    Nz/var/www/html/metafoliadorv2)Ú	APIRouterÚDependsÚHTTPExceptionÚPath)ÚSession)Úget_db)ÚReporte)ÚUser)ÚCreateReporteRequestÚUpdateReporteRequest)Úget_current_userÚrequire_permission)Úisoz/api/v1/reportesÚreportes)ÚprefixÚtagsÚ zListar reporteszOLista todos los reportes disponibles con su estado activo/inactivo, tipo y URL.)ÚsummaryÚdescriptionÚdbc              ƒ   óx  K  — | j                  t        «      j                  t        j                  «      j	                  «       }|D �cg c]f  }|j
                  |j                  |j                  |j                  |j                  |j                  |j                  t        |j                  «      dœ‘Œh c}S c c}w ­w)N©ÚidÚnameÚcoder   ÚactiveÚtype_reportÚ
url_reportÚ
created_at)Úqueryr	   Úorder_byr   Úallr   r   r   r   r   r   r   r   )r   r   Úrs      ú7/var/www/html/metafoliadorv2/app/api/routes/reportes.pyÚlist_reportesr%      sŠ   è ø€ à�x‰xœÓ ×)Ñ)¬'¯,©,Ó7×;Ñ;Ó=€Hð
 ö	ð ð �d‰d˜AŸF™F¨A¯F©FÀ1Ç=Á=Ø—(‘(¨1¯=©=ÈÏÉÜ˜!Ÿ,™,Ó'óò ð ùò ùs   ‚AB:ÁA+B5Â2B:z/{reporte_id}zObtener reportez,Devuelve el detalle de un reporte por su ID..zID del reporte)r   Ú
reporte_idc           
   ƒ   óv  K  — |j                  t        «      j                  t        j                  | k(  «      j	                  «       }|st        dd¬«      ‚|j                  |j                  |j                  |j                  |j                  |j                  |j                  t        |j                  «      dœS ­w)Né”  úReporte no encontrado©Ústatus_codeÚdetailr   )r    r	   Úfilterr   Úfirstr   r   r   r   r   r   r   r   r   )r&   r   r#   s      r$   Úget_reporter/      sƒ   è ø€ à
�‰”Ó× Ñ ¤§¡¨zÑ!9Ó:×@Ñ@ÓB€AÙ”M¨cÐ:QÔRÐRà�d‰d˜AŸF™F¨A¯F©FÀ1Ç=Á=Ø—(‘(¨1¯=©=ÈÏÉÜ˜!Ÿ,™,Ó'ñð ùs   ‚B7B9éÉ   zCrear reportezXCrea un nuevo reporte externo (type_report=2) con URL. Requiere permiso reportes.create.)r+   r   r   zreportes.createÚbodyÚcurrent_userc              ƒ   óœ  K  — | j                   r| j                  st        dd¬«      ‚|j                  t        «      j                  t        j                  | j                  k(  «      j                  «       }|rt        dd¬«      ‚| j                  dk(  r| j                  st        dd¬«      ‚t	        | j                   | j                  | j                  xs d| j                  | j                  | j                  �| j                  nd	¬
«      }|j                  |«       |j                  «        |j                  |«       d	|j                  dœS ­w)Né�  u   Nombre y cÃ³digo son requeridosr*   é™  õ   El cÃ³digo ya existeé   z$URL requerida para reportes externosr   T)r   r   r   r   r   r   )Úokr   )r   r   r   r    r	   r-   r.   r   r   r   r   ÚaddÚcommitÚrefreshr   )r1   r   r2   Úexistingr#   s        r$   Úcreate_reporter=   !   sø   è ø€ à�9Š9˜DŸIšIÜ¨Ð4UÔVÐVØ�x‰xœÓ ×'Ñ'¬¯©¸¿	¹	Ñ(AÓB×HÑHÓJ€HÙÜ¨Ð4JÔKÐKØ×Ñ˜1Ò T§_¢_Ü¨Ð4ZÔ[Ð[ÜØ�Y‰Y˜TŸY™Y°D×4DÑ4DÒ4JÈØ×$Ñ$°·±Ø"Ÿk™kÐ5ˆt�{Š{¸4ô	€Að
 ‡F�Fˆ1„IØ‡I�I„KØ‡J�Jˆq„MØ˜aŸd™dÑ#Ð#ùs   ‚E
EzActualizar reportezoModifica un reporte existente. Solo aplica a reportes externos (type_report=2). Requiere permiso reportes.edit.zreportes.editc              ƒ   óF  K  — |j                  t        «      j                  t        j                  | k(  «      j	                  «       }|st        dd¬«      ‚|j                  dk(  rt        dd¬«      ‚|j                  �|j                  |_        |j                  �|j                  t        «      j                  t        j                  |j                  k(  t        j                  | k7  «      j	                  «       }|rt        dd¬«      ‚|j                  |_        |j                  �|j                  |_	        |j                  �|j                  |_        |j                  �|j                  |_
        |j                  �|j                  |_        |j                  «        d	d
iS ­w)Nr(   r)   r*   é   r4   z%No se puede editar un reporte internor5   r6   r8   T)r    r	   r-   r   r.   r   r   r   r   r   r   r   r:   )r&   r1   r   r2   r#   r<   s         r$   Úupdate_reporter@   4   s:  è ø€ à
�‰”Ó× Ñ ¤§¡¨zÑ!9Ó:×@Ñ@ÓB€AÙ”M¨cÐ:QÔRÐRØ‡}�}˜ÒÜ¨Ð4[Ô\Ð\Ø‡y�yÐ t§y¡y˜aœfØ‡y�yÐØ—8‘8œGÓ$×+Ñ+¬G¯L©L¸D¿I¹IÑ,EÄwÇzÁzÐU_ÑG_Ó`×fÑfÓhˆÙœ=°SÐAWÔXÐXØ—‘ˆŒØ×ÑÐ#°T×5EÑ5E Q¤]Ø×ÑÐ#°T×5EÑ5E Q¤]Ø‡�Ð"°4·?±? A¤LØ‡{�{Ð¨4¯;©; ¤Ø‡I�I„KØ�$ˆ<Ðùs   ‚FF!zEliminar reportezvElimina permanentemente un reporte externo. No se pueden eliminar reportes internos. Requiere permiso reportes.delete.zID del reporte a eliminarzreportes.deletec              ƒ   ó0  K  — |j                  t        «      j                  t        j                  | k(  «      j	                  «       }|st        dd¬«      ‚|j                  dk(  rt        dd¬«      ‚|j                  |«       |j                  «        ddiS ­w)	Nr(   r)   r*   r?   r4   z'No se puede eliminar un reporte internor8   T)	r    r	   r-   r   r.   r   r   Údeleter:   ©r&   r   r2   r#   s       r$   Údelete_reporterD   F   sy   è ø€ à
�‰”Ó× Ñ ¤§¡¨zÑ!9Ó:×@Ñ@ÓB€AÙ”M¨cÐ:QÔRÐRØ‡}�}˜ÒÜ¨Ð4]Ô^Ð^Ø‡I�Iˆa„LØ‡I�I„KØ�$ˆ<Ðùs   ‚BBz/{reporte_id}/togglezActivar/inactivar reportezRAlterna el estado activo/inactivo de un reporte. Requiere permiso reportes.toggle.zreportes.togglec              ƒ   ó  K  — |j                  t        «      j                  t        j                  | k(  «      j	                  «       }|st        dd¬«      ‚|j                   |_        |j                  «        d|j                  dœS ­w)Nr(   r)   r*   T)r8   r   )r    r	   r-   r   r.   r   r   r:   rC   s       r$   Útoggle_reporterF   P   sf   è ø€ à
�‰”Ó× Ñ ¤§¡¨zÑ!9Ó:×@Ñ@ÓB€AÙ”M¨cÐ:QÔRÐRØ—8‘8ˆ|€A„HØ‡I�I„KØ !§(¡(Ñ+Ð+ùs   ‚BB)$ÚsysÚpathÚinsertÚfastapir   r   r   r   Úsqlalchemy.ormr   Úapp.models.databaser   Úapp.models.reporter	   Úapp.models.userr
   Úapp.schemasr   r   Úapp.api.routes.authr   r   Úapp.services.timezoner   ÚrouterÚgetr%   Úintr/   Úpostr=   Úputr@   rB   rD   rF   © ó    r$   ú<module>rY      sÊ  ðÛ 
Ø ‡�‡��Ð1Ô 2ß ;Ó ;Ý "Ý &Ý &Ý  ß Bß DÝ %á	Ð,°J°<Ô	@€à‡�ˆBÐ)ð  8I€ó  JÙ&-¨f£oñ ˜Gò ó Jðð ‡�ˆOÐ%6ÐDr€ÓsÙ(,¨SÐ>NÔ(OÑ_fÐgmÓ_nñ  #ð ÐU\ò ó tðð ‡�ˆR˜S¨/ð  Hb€ó  cÙCJÈ6Ã?Ñipñ  rDð  EVó  rWó  jXñ $Ð3ð $¸ð $Ðbfò $ó cð$ð$ ‡�ˆOÐ%9ð  Hy€ó  zÙ+/°ÐAQÔ+RÐquñ  FMð  NTó  FUñ  lsñ  tFð  GVó  tWó  lXñ  Sð ÐZnð ð  |Cð ð  eiò ó zðð" ‡�ˆÐ(:ð  IA€ó  BÙ+/°ÐA\Ô+]ÑmtÐu{Óm|ñ  T[ñ  \nð  o@ó  \Aó  TBñ  Sð Ðcjð ð  MQò ó Bðð ‡�Ð"Ð,Gð  Vj€ó  kÙ+/°ÐAQÔ+RÑbiÐjpÓbqñ  IPñ  Qcð  duó  Qvó  Iwñ , Sð ,ÐX_ð ,ð  BFò ,ó kñ,rX   