
    f6hk	                        S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJrJrJr  S SKJr  \" 5       r\R)                  S\S	9\" \5      4S
\S\4S jj5       r\R-                  S\\   S	9\" \5      4S\4S jj5       r\R-                  S\S	9\" \5      4S\S\4S jj5       r\R5                  S\S	9\" \5      4S\S\S\4S jj5       r\R9                  S\S	9\" \5      4S\S\4S jj5       rg)    )	APIRouterDependsHTTPExceptionstatus)and_)Session)IntegrityError)Personas)PersonasCreatePersonasUpdatePersonasOut)get_db/)response_modelpersonasdbc                    UR                  [        5      R                  [        R                  U R                  :H  [        R                  U R                  :H  5      R                  5       nU(       a
  [        SSS9e[        S0 U R                  5       D6nUR                  U5        UR                  5         UR                  U5        U$ )Ni  z)Ya existe una persona con este documento.status_codedetail )queryr
   filternro_docid_tpdocfirstr   dictaddcommitrefresh)r   r   existing_personasdb_personass       :/var/www/html/cementerio_25MayoBackend/routers/personas.pycreate_personasr$      s     *11H,,,X... eg 
 4_``-X]]_-KFF;IIKJJ{    z/buscarc                 L    U R                  [        5      R                  5       nU$ )N)r   r
   all)r   r   s     r#   get_personasr(   !   s    xx!%%'HOr%   z/{id}idc                     UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9eU$ )N  Persona no encontrada.r   )r   r
   r   r)   r   r   r)   r   r   s      r#   r(   r(   '   sC    xx!(():;AACH4LMMOr%   personas_updatec                 T   UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9eUR                  SS9R                  5        H  u  pE[        X4U5        M     UR                  5         UR                  U5        U$ )Nr+   zPersonas no encontrada.r   T)exclude_unset)r   r
   r   r)   r   r   r   itemssetattrr   r    )r)   r.   r   r   keyvalues         r#   update_personasr5   /   s    xx!(():;AACH4MNN%***>DDF
u% G IIKJJxOr%   c                     UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9eUR                  U5        UR                  5         SS0$ )Nr+   r,   r   messagezPersona eliminada correctamente)r   r
   r   r)   r   r   deleter   r-   s      r#   delete_personasr9   >   s_    xx!(():;AACH4LMMIIhIIK899r%   N)fastapir   r   r   r   
sqlalchemyr   sqlalchemy.ormr   sqlalchemy.excr	   models.personasr
   schemas.personasr   r   r   databaser   routerpostr$   getlistr(   intputr5   r8   r   r9   r   r%   r#   <module>rG      s;   = =  " ) $ H H 	 S-<CFO n '  .$ Id;&78&v W  9
 GK0(/ S g  1 GK0LSTZO  n '  1 wt,+26? 	: 	: 	: -	:r%   