
    Hh                        d dl mZmZ d dlmZ d dlmZ 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 d d	lmZ d d
l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
j2                         ed
       ed
       ee      fde
dededefd       Zej7                  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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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fd%       Z!ej;                  d&       ee       ee      fd'e"dedefd(       Z#ej/                  d)       ee
j2                         ed
       ed
       ee      fdede
dededef
d*       Z$y
)+    )	APIRouterDepends)get_db)Session)	UserLoginProductListStoreProduct)ProductClass)get_current_active_user)	FileClass)File
UploadFileHTTPException)datetimeNz	/productsProducts)prefixtags/product_inputsession_userdbc                     t        |      j                  | j                  | j                  | j                        }d|iS )N)pagesupplier_id
product_idmessage)r
   get_allr   r   r   )r   r   r   datas       _C:\Users\jesus\OneDrive\Escritorio\backend-lacasadelvitrificado\app\backend\routers\products.pyindexr       sD    ##!-- ++ $ D t    z/store	form_dataphotocatalogc                 <   	 t        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}d}|r
| d| d| n| d| }| d| }	t        |      j                  ||	       t        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}d}|r
| d| d| n| d| }| d| }
t        |      j                  ||
       t        |      j                  | |	|
      }d	|iS # t        $ r}t        d
dt        |             d }~ww xY wNz%Y_%m_%d_%H_%M_%S   . r#   _r$   r   i  zError al procesar: )status_codedetail)r   nowstrftimeuuiduuid4hexfilenamesplitr   uploadr
   store	Exceptionr   str)r"   r#   r$   r   	timestamp	unique_idfile_extensionfile_category_nameunique_filenamephoto_remote_pathcatalog_remote_pathresponsees                r   r6   r6      s   TLLN++,?@	JJL$$Ra(	:=:O--c226UW$IWYKq1^4DE`i_jjklukv]w12!O3DE"U$56LLN++,?@	JJL$$Ra(	<?7CSCS<S))//4R8Y[&IWYKq1^4DE`i_jjklukv]w!3 4Ao5FG"W&9:#)))5FH[\8$$ T6I#a&4RSSTs   E1E4 4	F=FFz/delete/{id}idc                 >    t        |      j                  |       }d|iS Nr   )r
   deleterB   r   r   r   s       r   rE   rE   >   s"    ""2&Dtr!   z
/edit/{id}c                 Z    t        d|         t        |      j                  |       }d|iS )NzFetching product with ID: r   )printr
   getrF   s       r   editrJ   D   s2    	&rd
+,#Dtr!   z/sale/data/{id}c                 >    t        |      j                  |       }d|iS rD   )r
   	sale_datarF   s       r   salerM   K   s"    %%b)Dtr!   z/sale_list/{category_id}category_idc                 >    t        |      j                  |       }d|iS rD   )r
   	sale_listrN   r   r   r   s       r   rP   rP   Q   s"    %%k2Dtr!   z$/sale_list_by_category/{category_id}c                 >    t        |      j                  |       }d|iS rD   )r
   sale_list_by_categoryrQ   s       r   rP   rP   W   s"    11+>Dtr!   z/listc                 <    t        |      j                         }d|iS rD   )r
   get_list)r   r   r   s      r   listrV   ]   s     $$&Dtr!   z/supplier/{supplier_identifier}supplier_identifierc                 >    t        |      j                  |       }d|iS )z
    Endpoint para obtener productos filtrados por proveedor.
    
    Args:
        supplier_identifier: RUT del proveedor (ej: "12345678-9") o ID del proveedor (ej: "123")
    
    Returns:
        Lista de productos del proveedor especificado
    r   )r
   get_products_by_supplier)rW   r   r   r   s       r   products_by_supplierrZ   c   s%     445HIDtr!   z/update/{id}c                 N   	 d }d }|rt        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}	d}
|	r
| d| d|	 n| d| }|
 d| }t        |      j                  ||       |rt        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}	d}
|	r
| d| d|	 n| d| }|
 d| }t        |      j                  ||       t        |      j                  | |||      }d	|iS # t        $ r}t        d
dt        |             d }~ww xY wr&   )r   r.   r/   r0   r1   r2   r3   r4   r   r5   r
   updater7   r   r8   )rB   r"   r#   r$   r   r>   r?   r9   r:   r;   r<   r=   r@   rA   s                 r   r\   r\   r   s   T " //0CDI

((!,I>AU^^>SU^^11#6r:Y[N!(M[1YKq8HIdmcnnopyoza{O#5"6a7H IbM  (9: //0CDI

((!,I@CwGWGW@WW--33C8<]_N!*M[1YKq8HIdmcnnopyoza{O%7$8/9J"KbM  *=>#**2y:KM`a8$$ T6I#a&4RSSTs   E:E= =	F$FF$)%fastapir   r   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr   r   r	   !app.backend.classes.product_classr
   app.backend.auth.auth_userr   app.backend.classes.file_classr   r   r   r   r   r0   productspostr    as_formr6   rE   intrI   rJ   rM   rP   rV   r8   rZ   r\    r!   r   <module>ri      sM   & * " D D : > 4 3 3  

 
s@GH_@`pwx~p  I fm   
x%l&:&:;T
t*&/	 T T T  T 		 T  TD 
 .56M.N^efl^m s ) T[  !
 
l,34K,L\cdj\k S 	 RY   
 ,34K,L\cdj\k S 	 RY  !
 
():ABY:Zjqrxjy 3 i `g  *
 
45:ABY:Zjqrxjy 3 i `g  6
 
g#*+B#CSZ[aSb y   
 
/0MTUlMm  ~E  FL  ~M c  sz  1 
~ &l&:&:;T
t*&/$T$T$T $T 	$T
 	$T $Tr!   