
    i              
       T   d dl 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mZmZmZ d dlmZ d dlmZ d dlmZ  ed	d
g      Zej-                  d       ee       ee      fdedede	fd       Zej-                  d       ee       ee      fdedede	fd       Zej3                  d       ee       ee      fdedede	fd       Zej9                  d       ee       ee      fdedede	fd       Zej;                  d       ee       ee      fdededede	fd       Zy)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)CustomerListStoreCustomerUpdateCustomer	UserLogin)CustomerClass)	UserClass)get_current_active_userz
/customers	Customers)prefixtags/customer_listsession_userdbc                    | j                   dn| j                   }t        |      j                  || j                  | j                  | j
                  | j                        }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d d	      S | j                   d
nd}t        t        j                  d||d	      S )Nr   )pageitems_per_pageidentification_numbernamescompany_namer   error  messageErrorr   r   datastatus_codecontentz.Complete customers list retrieved successfullyz Customers retrieved successfully   )r   r   get_allper_pager   r   r   
isinstancedictgetr   r   HTTP_404_NOT_FOUNDHTTP_200_OK)r   r   r   
page_valueresultr   s         [C:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\customers.pyindexr1      s    #((0m6H6HJ2&&$--+AA!!"// ' F &$FJJx$8G$C11!::i9
 	
 CPBTBTB\>  cEG&&
     z/storecustomerc           	      >   | j                         }|j                  d      }|j                  d      }|j                  d      }t        |      j                  |      }t	        |t               rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d d	
      S t	        |t               r|j                  d      dk(  r|j                  d      }|||j                  d      |j                  dd       d|j                  dd       j                         |||j                  d      d d}	t        |      j                  |	      }
|
dk(  rt        t        j                  dd|d	
      S t        t        j                  dd|d	
      S )Nemailpasswordrol_idr   r     r   zError creating customerr!   r#   successcustomer_idr   r     	lastnamesphone)r:   r7   rut	full_namer5   r6   r>   branch_office_idr   z(Customer created but error creating user   z&Customer and user created successfully)r*   r+   r   storer)   r   r   HTTP_500_INTERNAL_SERVER_ERRORstripr   HTTP_201_CREATED)r3   r   r   customer_inputsr5   r6   r7   r/   r:   user_inputsuser_results              r0   rC   rC   /   s   mmoO (E"":.H  *F 2$$_5F&$FJJx$8G$C==!::i1JK
 	
 &$FJJx$8I$Ejj/ '"&&'>?+//<=Q?R?RS^`b?c>dekkm $((1 $	
  m))+6!"AA!I"  ++?
 r2   z
/edit/{id}idc                 b   t        |      j                  |       }t        |t              rg|j                  d      s|j                  d      dk(  rBt	        t
        j                  d|j                  d      xs |j                  dd      d d      S t	        t
        j                  dd	|d      S )
Nr   r   r   r   Customer not foundr!   r#   r&   zCustomer retrieved successfully)r   r+   r)   r*   r   r   r,   r-   rJ   r   r   r/   s       r0   editrN   j   s    2""2&F&$VZZ%8FJJx<PT[<[11!::g.]&**YH\2]
 	
 &&8
 r2   z/delete/{id}c                    t        |      j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d      S t        t        j                  dd	|d      S )
Nr   r   r   r   rL   r!   r#   r&   zCustomer deleted successfully)	r   deleter)   r*   r+   r   r   r,   r-   rM   s       r0   rP   rP      s    2%%b)F&$FJJx$8G$C11!::i1EF
 	
 &&6
 r2   z/update/{id}c                 @   |j                  d      }t        |      j                  | |      }t        |t               rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d	      S t        t        j                  d
d|d	      S )NT)exclude_unsetr   r   r8   r   zError updating customerr!   r#   r&   zCustomer updated successfully)	r*   r   updater)   r+   r   r   rD   r-   )rJ   r3   r   r   rG   r/   s         r0   rS   rS      s    mm$m7O2%%b/:F&$FJJx$8G$C==!::i1JK
 	
 &&6
 r2   N)fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   "app.backend.classes.customer_classr   app.backend.classes.user_classr   app.backend.auth.auth_userr   	customerspostr1   rC   r+   intrN   rP   putrS    r2   r0   <module>ra      s   . . * * " V V < 4 >
	
 AHI`Aaqxy  rA  Y gn  > =DE\=]mtu{m| 8M 8 8cj 8 8t |,34K,L\cdj\k S 	 RY  , .!.56M.N^efl^m s ) T[  ", ~HOPgHhx  AG  yH s n I nu  r2   