a
    h                     @   s  d dl mZ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 ed	d
gdZd dlmZ ee jjjZeeed dZdd ZedeefedddZedededeefeeedddZe deefe!edddZ"edeefeddd Z#edededeefeeed!d"d#Z$e d$eefe!edd%d&Z%ejd'ed(ed)d*d+Z&ejd,ed(eefeed-d.d/Z'ejd0ed(eefeed-d1d2Z(dS )3    )	APIRouterDependsHTTPException)Session)SessionLocal)
InstrumentKPIKPIValue)HTMLResponse)Jinja2Templates)Request)Formz/adminZAdmin)prefixtags)Path	templates)	directoryc                  c   s(   t  } z| V  W |   n
|   0 d S N)r   closedb r   4/var/www/html/stock_analysis/app/api/admin_routes.pyget_db   s    r   z/instrumentsr   c                 C   s   |  t S r   )queryr   allr   r   r   r   list_instruments   s    r   .N)symbolnamer   c                 C   sD   | tj| d r"tdddt| |d}|| |  |S )N)r     zInstrument already existsdetail)r   r   )r   r   	filter_byfirstr   addcommit)r   r   r   itemr   r   r   create_instrument   s    
r'   z/instruments/{id})idr   c                 C   s:   | t| }|s tddd|| |  ddiS Ni  z	Not foundr    deletedT)r   r   getr   deleter%   r(   r   r&   r   r   r   delete_instrument%   s    
r.   z/kpisc                 C   s   |  t S r   )r   r   r   r   r   r   r   	list_kpis/   s    r/   )coder   r   c                 C   sL   t d |tj| d r*tdddt| |d}|| |  |S )NzIN Create KPIs)r0   r   zKPI already existsr    )r0   r   )printr   r   r"   r#   r   r$   r%   )r0   r   r   r&   r   r   r   
create_kpi3   s    
r2   z
/kpis/{id}c                 C   s:   | t| }|s tddd|| |  ddiS r)   )r   r   r+   r   r,   r%   r-   r   r   r   
delete_kpi=   s    
r3   /)response_classrequestc                 C   s   t dd| iS )Nz
admin.htmlr7   )r   ZTemplateResponser6   r   r   r   admin_dashboardF   s    r8   z/admin/instruments)r7   r   c                 C   s4   | t }ddd |D }td| ddS )N c              	   S   s.   g | ]&}d |j  d|jpd d|j dqS )C<div class='flex justify-between items-center border-b py-1'><span> (r9   zC)</span><button class='text-red-600' hx-delete='/admin/instruments/zH' hx-target='#instrument-list' hx-swap='outerHTML'>Delete</button></div>)r   r   r(   ).0ir   r   r   
<listcomp>M   s   z)list_instruments_html.<locals>.<listcomp>z<div id='instrument-list'></div>content)r   r   r   joinr
   )r7   r   instrumentshtmlr   r   r   list_instruments_htmlJ   s
    
rE   z/admin/kpisc                 C   s4   | t }ddd |D }td| ddS )Nr9   c              	   S   s.   g | ]&}d |j  d|jpd d|j dqS )r:   r;   r9   z<)</span><button class='text-red-600' hx-delete='/admin/kpis/zA' hx-target='#kpi-list' hx-swap='outerHTML'>Delete</button></div>)r0   r   r(   )r<   kr   r   r   r>   X   s   z"list_kpis_html.<locals>.<listcomp>z<div id='kpi-list'>r?   r@   )r   r   r   rB   r
   )r7   r   kpisrD   r   r   r   list_kpis_htmlU   s
    
rH   ))fastapir   r   r   sqlalchemy.ormr   app.db.databaser   app.db.modelsr   r   r	   fastapi.responsesr
   Zfastapi.templatingr   r   r   routerpathlibr   __file__resolveparentZBASE_DIRstrr   r   r+   r   postr'   r,   intr.   r/   r2   r3   r8   rE   rH   r   r   r   r   <module>   s<   (	(	
